Datentyp Byte, Word, DWord ..
-
Huhu,
wie heißen in C++ die Datentypen für unsigned Byte, unsigned Word und unsigned DWord? Btw.. gibt's die überhaupt signed? Naja, hab's zur Sicherheit mal zugeschrieben. Danke schonmal!
-
signed char
signed short
signed int
unsigned char
unsigned short
unsigned intDie Größe der Datentypen wird leider nicht garantiert bzw. ist nicht festgelegt.
-
Zuerst musst du einmal festlegen was du unter nem word verstehst.
Der ideale Typ für eine Plattform ist int.Unter *NIX ist int und word das gleiche, aber windows ist da etwas komisch die haben word von 16bit nicht auf 32bit erhöht beim wechsel von 16 zu 32bit sondern einfach nen neuen typ eingeführt dword (btw. int ist da auf 64bit cpus weiterhin 32bit, aus den gleichen dubiosen gründen).
-
"wird nicht garantiert"
bedeutet das, dass die datentypen auf unterschiedlichen maschinen unterschiedliche größen haben?
und.. gibt es eine möglichkeit, einen datentyp zu spezifizieren, der UNBEDINGT UND GENAU 8, 12, 16 Bit hat, etc.?
Danke schonmal
-
Danke,
mit Byte meine ich 8 Bit,
mit Word 16 Bit
und DWord 32 Bit
-
sorry, den letzten Beitrag hat nicht der Prof, sondern ich, verfasst.
-
NULL_HIRN schrieb:
"wird nicht garantiert"
bedeutet das, dass die datentypen auf unterschiedlichen maschinen unterschiedliche größen haben?
und.. gibt es eine möglichkeit, einen datentyp zu spezifizieren, der UNBEDINGT UND GENAU 8, 12, 16 Bit hat, etc.?
Danke schonmal
Ja, unteschiedliche Größe auf unterschiedlichen Maschinen (evtl. sogar bei unterschiedlichen Compilern, so genau kenn ich mich da nicht aus).
Genau spezifiziern kannst du das nicht. Unter MSVC++ gibt es immerhin __int8, __int16, __int32, __int64.
-
Stimmt so nicht ganz, man kann schon auf Bitgröße gehen mit den Bitfeldern:
struct 7Bit { unsigned char bits : 7 };
Aber native Typen beschränken sich alle auf Bytegröße, bei Bitfeldern ist uU auch das Alignment nicht mehr auf Byteebene sondern auf Bitebene, was bedeutet, dass der Zugriff absolut unperformant ist. Daher empfiehlt es sich mit ner Bitmaske die Bitanzahl zu beschränken.
-
Hab's mal durchgetestet und funktioniert super! Danke euch allen.