Frage von ironie21, 42

Zahlen (des Hex-Systems) als Byte darstellen?

Wenn ich die Zahl 345 im Hex-System habe und sie als Byte darstellen möchte, wie mache ich das dann?

Denn 1 Byte sind ja zwei Ziffern des Hex-System, aber bei 235 ist die Anzahl der Ziffern ja ungerade.

Wie mache ich das dann?

Antwort
von surbahar53, 19

1 Byte besteht aus 8 Bit. Damit lassen sich die dezimalen Zahlen von 0 bis 255 (ohne Vorzeichen ) darstellen. Für die dezimale Zahl 345 braucht man also 2 Byte.

Der Wert im 2. Byte muss dann mit 256 multipliziert werden, und der Wert des 1. Byte wird dazu addiert.

2. Byte : dezimal 1, hex 1

1. Byte : dezimal 89, hex 59

1 * 256 + 89 = 345

Antwort
von Brotmensch89, 21

Ich würde sagen, gar nicht. Denn wie du schon sagst: um diese 3 Ziffern im binären System darzustellen, bräuchtest du 12 Bit. Es ist also nicht möglich.

Bzw., um genau zu sein: bei 345(Hex) bräuchtest du 10 Bit. Das ändert aber nichts, da ein Byte als 8 Bit definiert ist.

Edit: 

Ok, wenn die Grenze nicht bei 8 Stellen liegt, dann geht es natürlich, wie die anderen Kommentatoren ja bereits geschrieben haben.

Antwort
von dan030, 11

0345 kannst Du als 16bittigen Wert auf zwei Wegen darstellen:

03 45 oder 45 03. Welche Repräsentation für eine konkrete Prozessorarchitektur korrekt ist hängt davon ab, ob Du es mit einem "little endian" oder mit einem "big endian" zu tun hast.

Antwort
von daCypher, 31

Einfach vorne mit Nullen auffüllen. 345(10) = 159(16). Als Zwei-Byte Binärwert dargestellt wäre das 0000 0001 0101 1001

Kommentar von ironie21 ,

Wie kommst du auf 345(10) = 159(16)

Kommentar von xxxcyberxxx ,

er ging davon aus, dass deine 345 im Dezimalsystem vorliegt, und hat diese dann ins Hexa-System umgewandelt.

Kommentar von daCypher ,

Genau. Falls die 345 schon im Hex-System ist, dann ist es Binär mit aufgefüllten Nullen halt 0000 0011 0100 0101

Kommentar von ironie21 ,

Muss ich meine345 (16) als Binärzahl umrechnen um sie als Byte(s) darzustellen oder kann man Zaheln aus dem Hex-System auch Ohne umrechnen als Byte darstellen?

Kommentar von daCypher ,

Jede Ziffer aus dem Hex-System lässt sich direkt in eine vierstellige Binärzahl übersetzen. Du musst also nicht wirklich rechnen, sondern kannst sie einfach übersetzen.

0 - 0000
1 - 0001
2 - 0010
3 - 0011
4 - 0100
5 - 0101
6 - 0110
7 - 0111
8 - 1000
9 - 1001
A - 1010
B - 1011
C - 1100
D - 1101
E - 1110
F - 1111

Dann halt vorne mit Nullen auffüllen, bis ganze Bytes dabei rauskommen.

Antwort
von xxxcyberxxx, 21

Alle "unbenutzten" Stellen werden mit nullen Aufgefüllt.

Deine 345(16) sind dann also 0000 0011 0100 0101(2)

Keine passende Antwort gefunden?

Fragen Sie die Community