Ganzzahlige Datentypen

WinHex & X-Ways

Ganzzahlige Datentypen

 

Format/Typ                                                Bereich                                                                Beispiel

                                                                                                         

8 Bit, vorzeichenbehaftet                                -128...127                                                FF = -1

8 Bit, vorzeichenlos                                0...255                                                    FF = 255

16 Bit, vorzeichenbehaftet                -32.768...32.767                                                00 80 = -32.768

16 Bit, vorzeichenlos                                0...65.535                                                00 80 = 32.768

24 Bit, vorzeichenbehaftet                -8.388.608...8.388.607                                00 00 80 = -8.388.608

24 Bit, vorzeichenlos                                0...16.777.215                                                00 00 80 = 8.388.608

32 Bit, vorzeichenbehaftet                -2.147.483.648...2.147.483.647                00 00 00 80 = -2.147.483.648

32 Bit, vorzeichenlos                                0...4.294.967.295                                00 00 00 80 = 2.147.483.648

64 Bit, vorzeichenbehaftet                -2^63...2^63-1                                                00 00 00 00 00 00 00 80 = -2^63

 

Sofern nicht anders angegeben, sind ganzzahlige Datentypen im Little-Endian-Format gespeichert. D. h. das erste Byte einer Zahl ist das niederstwertige und das letzte Byte ist das höchstwertige. Dies ist das gebräuchliche Format für Computer, auf denen Windows läuft.

 

Wenn beispielsweise in einer Datei die Hex-Werte 10 27 stehen, so entspricht dies als numerischer 16-Bit-Wert der Hexadezimal-Zahl 2710 (was ins Dezimalsystem umgerechnet 10000 bedeutet). Ebenso erscheint die Hexadezimal-Zahl 123 als 23 01. Das Byte mit dem Wert 23 ist das niederwertige (es enthält die Einer- und die 16er-Stelle der Zahl) und kommt daher zuerst.

 

Eine weitere Besonderheit ist beim Interpretieren von Daten-Bytes als numerische Werte zu beachten: Zahlen, die größer als die Hälfte der Maximalzahl verschiedener Werte eines Zahlentyps sind (8 Bit: 2 hoch 8=256, 16 Bit: 2 hoch 16=65536), können als negative Zahlen übersetzt werden. Der Hex-Wert 8235 (der in einer Datei als 35 82 erscheint, s. o.), kann ins Dezimalsystem zu 33333 umgerechnet werden. Ein Programm, das den 16-Bit-Wert aber vorzeichenbehaftet liest, erhält aber die Zahl "-32203". Diese zweite Möglichkeit ergibt sich, wenn von der Übersetzung als vorzeichenloser Wert die Maximalzahl verschiedener numerischer Werte des Zahlentyps subtrahiert wird (Beispiel: 33333-65536=-32203).

 

Die Darstellung in der Statusleiste, der Daten-Dolmetscher (der Daten in allen obigen Formaten auf einmal übersetzen kann) und die Funktion »Ganze Zahl suchen« im Suchen-Menü berücksichtigen die genannten Besonderheiten automatisch.

 

Der Daten-Dolmetscher beherrscht alle o. g. Integer-Typen sowie zusätzlich vorzeichenlose 48-Bit-Integer.