In Little Endian & Big Endian auslesen? Wie mache ich das?

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Zwei Stellen im Hexadezimalsystem repräsentieren genau ein Byte. Darum schreibt man das auch so und man kann leicht erkennen, dass es um die 3 Byte 97, A1 und CD geht.

Du kannst die 9 und 7 noch als sogenannte Nibbles oder Half-Bytes sehen wenn du das möchtest, wird aber idR nicht gemacht.

Es geht hier lediglich um die Unterschiede zwischen Littel und Big Endian.

Da hier steht Byteweise auslesen würde jeder Computer egal ob Little oder Big Endian 97 A1 CD sagen, weil die Endianess auf Subbytes keine Aussage macht und somit jedes Byte unverändert bleibt. Sprich ich würde die oben genannte Struktur als Array interpretieren und nicht als zusammenhängenden Datentyp.

Wenn wir aber zB das Word 97 A1 CD 00 in Little und Big Endian ausgeben sollen ergibt das

Big Endian: 97 A1 CD 00

Little Endian: 00 CD A1 97

Die Schreibweise ist in solchen Fällen eigentlich immer Big Endian und das erst genannte Byte ist das höherwertigste.


jeffreemoon 
Beitragsersteller
 29.10.2021, 11:47

Vielen Dank für die ausführliche Antwort.

Ich verstehe, also verändert sich nur die Reihenfolge von dem Hexadezimalwert? Ist es immer so, dass das erste Byte, immer das höchstwertigste ist unabhängig von den Zahlen?

Und was ist denn der Rechenweg für den Hexadezimalwert? Es ist doch bereits ein Hexadezimalwert oder verstehe ich wieder etwas falsch.

0
PeterKremsner  29.10.2021, 11:56
@jeffreemoon
Ich verstehe, also verändert sich nur die Reihenfolge von dem Hexadezimalwert?

Ja also Little und Big Endian ist nur die Bytereihenfolge bei Mehrbytewerten.

Sprich alle Daten die mehr als ein Byte haben sind davon betroffen. Little Endian Computer schreiben dabei das niederwertigste Byte in die kleine Speicheradresse und Big Endian Computer schreiben das höchstwertige Byte in die kleine Speicheradresse.

Ist es immer so, dass das erste Byte, immer das höchstwertigste ist unabhängig von den Zahlen?

Höchstwertig ist keine Eigenschaft von Zahlen. Nehmen wir zB die Dezimalzahl 18, dann ist die 1 also die Zehnerstelle die höchstwertigste Stelle und und 8 also die Einerstelle die niederwertigste.

Das selbe gilt auch für die Bytes. Das höchstwertigste Byte sind eben die höchstwertigsten Stellen in der jeweiligen Zahl.

Das mit dem Rechenweg versteh ich auch nicht ganz, aber du kannst natürlich die Umrechnung in Dezimal und Binär angeben.

0

Weil man mit zwei hexadezimalen Zeichen genau 8 Bit repräsentieren kann. Liegt daran, dass die Basis des Zahlensystems auch 2^n ist. 2^4 = 16, also repräsentierst du mit einer hexadezimalen Ziffer genau vier Bit. Big/Little Endian bezieht sich auf die Reihenfolge der Bytes. Informationen dazu liefert sogar Wikipedia zuhauf.


jeffreemoon 
Beitragsersteller
 29.10.2021, 11:49

Viele Dank für die Antwort. Ich denke, dass ich es jetzt verstehe. Ich habe bereits auf diversen Seiten recherchiert, aber die haben mir nicht wirklich weiter geholfen, da das alles zu viel neue Information auf einmal war.

0