Προς το περιεχόμενο

Πως θα δημιουργησω ενα τυπο?


Evgenios1

Προτεινόμενες αναρτήσεις

Δημοσ.

Γεια χαρα δαν.

Θελω να δημιουργησω ενα τυπο ο οποιος θα δεσμεβει 4 bit , δλδ 16 διαφορετικες τημες

(0χ0,0χ1....0χF). <<Το ξερω πος υπαρχει το float>>

"lang. cpp ή csharp"

Δημοσ.

δεν μπορείς να δεσμεύσεις λιγότερο από 1 byte...

Εαν μας πεις καλύτερα τι θες να κάνεις, μπορεί να πέσει καμια ιδέα...

Δημοσ.
Γεια χαρα δαν.

Θελω να δημιουργησω ενα τυπο ο οποιος θα δεσμεβει 4 bit , δλδ 16 διαφορετικες τημες

(0χ0,0χ1....0χF). <<Το ξερω πος υπαρχει το float>>

"lang. cpp ή csharp"

 

Ουτε εγω ειμαι της Φιλοσοφικης...αλλα κανε ομως κατι με την ορθογραφια, γιατι μας εχεις βγαλει τα ματια! Spell check it first! :-)

Δημοσ.

στοχος σου ειναι να μπορει ο τυπος σου να παιρνει ΜΟΝΟ 16 τιμες?

Ή να δεσμευει λιγοτερη μνημη?

Καταρχην, αυτο που λεει ο drm ισχυει, το byte ειναι ο μινιμουμ χωρος μνημης που μπορει να δεσμευτει. Απο κει και περα μπορεις να πετυχεις διαφορα πραγματα κανοντας μαϊμουδιες με shifting, masking κτλ ωστε να αποθηκευσεις περισσοτερες απο μια τιμες σε ενα byte.

Αυτα, τα υπολοιπα οταν μας εξηγησεις τι θες να πετυχεις....

Δημοσ.
στοχος σου ειναι να μπορει ο τυπος σου να παιρνει ΜΟΝΟ 16 τιμες?

Ή να δεσμευει λιγοτερη μνημη?

Καταρχην, αυτο που λεει ο drm ισχυει, το byte ειναι ο μινιμουμ χωρος μνημης που μπορει να δεσμευτει. Απο κει και περα μπορεις να πετυχεις διαφορα πραγματα κανοντας μαϊμουδιες με shifting, masking κτλ ωστε να αποθηκευσεις περισσοτερες απο μια τιμες σε ενα byte.

Αυτα, τα υπολοιπα οταν μας εξηγησεις τι θες να πετυχεις....

Το δευτερο ηθελα (το πρωτο το κανεις και με ενα enum), τελος παντων' Απλα πιραματιζομε.Δλδ ενας χ86 επεξεργαστης κανει πραξεις (λογικες και μη) με βαση το 1 byte

? Και τοτε τι μας λενε 32μπιτος και 64μπιτος?(ταχω χαμενα) Και οι εντολες που εχει ο επεξεργαστης ως τι ειναι, 8bit,16bit,32bit ή 64bit?

Δημοσ.

Μια εντολη σε χ86 κανει πραξεις αναμεσα σε θεσεις μνημης η και με σταθερες τιμες. Πιο συγκεκριμενα σε εναν 32bit επεξεργαστη καθε εντολη εχει μηκος 32bits σε εναν 64bit εχει 64 κλπ. Απο αυτα καποια bit κανουν τον επεξεργαστη να καταλαβει για ποια εντολη μιλαμε και καποια αλλα αναφερονται σε διευθυνσεις μνημης. Στα λεω αρκετα γενικα και ελπιζω να ειναι κατανοητα. Οσο για αυτο που ζητας στην C μπορεις να δηλωσεις μια μεταβλητη που να περνει τοσες διαφορετικες τιμες οσο πχ. 2 bit δηλαδη 4 διαφορετικες τιμες. Για το πως συντασετε δεν μπορω να σε βοηθησω.(δες εδω: http://www.daniweb.com/forums/thread78578.html).

Δημοσ.

Μπορείς να δηλώσεις bit fields μέσα σε struct (c και c++).

 

Π.χ

struct {

unsigned int test: 1;

unsigned int : 0;

unsigned int : 1;

} class;

 

Μπορείς να έχεις named και unnamed πεδία όπως βλέπεις. Τα unnamed

βολεύουν για padding. Με τα zero-fields μπορείς να κάνεις alignment

(αν το χρειαζεσαι)..

Δε μπορείς να χρησιμοποιείς array με bit-fields ούτε τις διευθύνσεις τους

(με τον τελεστή &).

 

Για αυτο το λόγο η c είναι πολύ βολική για περιπτώσεις embedded software.

Δημοσ.
Μπορείς να δηλώσεις bit fields μέσα σε struct (c και c++).

>
Π.χ struct { 
unsigned int test: 1;
unsigned int   : 0;
unsigned int   : 1;
}  class; 

Τι ειναι : (σοζ και ολας αλλα ως χομπι ασχολουμε) , το test δεν ειναι int?δλδ 32bit

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...