PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bytes mit h


Vedek Bareil
2004-11-24, 23:39:48
Hallo,

ich habe neuerdings viel mit der Darstellung von Bytes bzw. Folgen von Bytes in Hexadezimaldarstellung zu tun, wo jedem Byte zwei Hex-Ziffern entsprechen. Nun gibt es da ein Dateiformat, bei dem in der Datei bestimmte Folgen von Bytes drinstehen, die man sich in nem Hex-Editor anzeigen lassen kann, und in der Dokumentation zu dem Dateiformat stehen manche Bytes mit einem hinten angehängten kleinen h, z.B. C2h oder 20h. In der Anzeige im Hex-Editor ist davon aber nichts zu sehen, da stehen die Bytes immer ohne h. Was hat dieses h zu bedeuten?

Mir kommt da gerade eine Idee. Ich habe allerdings gerade nicht die Möglichkeit sie zu überprüfen (die besagte Dokumentation ist Firmengeheimnis, ich darf sie nicht mit nach Hause nehmen), daher frage ich euch ob sie stimmt: es kann sein, daß dieses h immer nur dann auftritt, wenn die vorangegangene Hex-Ziffer eine auch im Dezimalsystem vorkommende Ziffer ist, also 0...9. Soll das h dann vielleicht einfach nur symbolisieren, daß es sich um eine hexadezimale Ziffer handelt und nicht um eine dezimale?

Dann noch eine Frage: bei einer Zahldarstellung mit 0x am Anfang soll dieses 0x doch nichts anderes bedeuten als daß die nachfolgende Ziffernfolge als Hex-Zahl zu interpretieren ist, oder? D.h. 0xA24D ist nichts anderes als die Hex-Zahl A24D?

Gnafoo
2004-11-24, 23:58:15
Hm klingt etwas durcheinandergewürfelt. Das 0x bedeutet sicherlich, dass der angehängte Rest im Hexerdezimalsystem steht. Das wird beim Programmieren in C, C++ und einigen anderen Sprachen so gemacht.
Also 0x0F = 15

Mit dem angehängten h ist es eigentlich das selbe. Weiß nicht, in welchen Sprachen das noch so ist, aber Basic benutzt zum Beispiel statt dem 0x vorne dran einfach ein h am Ende, um zu zeigen, dass die Ziffer im Hexerdezimalsystem steht.
z.B. 0Fh = 15

Also ist beides soweit ich weiß im Prinzip das selbe.
Der Hexeditor zeigt dir das nicht an, weil es dort sowieso klar ist, dass Hexadezimalzahlen genutzt werden.

Also: 0x0F = 0Fh = 15
und der Hexeditor zeigt dir das einfach als 0F an.

cu DerTod

Xmas
2004-11-25, 00:01:59
Das h ist genauso wie 0x lediglich eine Kennzeichnung von Hexadezimalzahlen. 0x ist die in C und ähnlichen Programmiersprachen übliche Schreibweise, h hängt man z.B. bei x68-Assembler an. Dort gibt es noch die Besonderheit, dass Zahlen, egal ob hex oder dezimal, mit einer Ziffer beginnen müssen. Das heißt, würde die Hex-Zahl mit A-F beginnen, musst du eine führende 0 verwenden.
In C steht eine führende 0 übrigens für Oktalzahlen, also zur Basis 8.

012 wäre also dezimal 10, 0x12 dezimal 18.

Der Hex-Editor zeigt natürlich aus offensichtlichen Gründen kein h oder 0x an ;)

Vedek Bareil
2004-11-25, 23:44:17
dank euch :)