Little und Big Endian richtig anwenden

Neue Frage »

Auf diesen Beitrag antworten »
matt99 Little und Big Endian richtig anwenden

Passte hier für mich am besten rein, da es ja schon was mit Rechnerarchitektur zu tun hat...

Und zwar wollte ich wissen wie man Little bzw. Big Endian richtig anwendet? In den Vorlesungen und im Internet fand ich immer formal, dass das niederwertigste Byte bzw. das höherwertigste Byte am Anfang steht (bzw. die Reihenfolge angibt). Ich wollte zum einen wissen was mit nieder- und höherwertig gemeint ist? Wirklich nur simpel, welches Byte den niedrigsten Wert hat (sprich 1 < 2, etc)?
Nehmen wir als Beispiel D7 00. In diesem Fall wäre ja 00 das niederwertigste, da 0C in Dezimalschreibweise 215 ist und damit größer 0. Also wäre D7 00 bereits Big Endian Schreibweise und in Little Endian Form 00 D7?

Im Internet fand ich auch Erklärungen, die genau das Gegenteil erläuterten. Beispielsweise auf
cdn3.raywenderlich.com/wp-content/uploads/2012/04/Big-endian-vs-little-endi
an.png

44 33 22 11 ist doch Big Endian (höherwertigstes Byte, also 44, als erstes) und 11 22 33 44 Little Endian (niederwertigstes Byte, als 11, als erstes).

Und wo wir beim Thema sind, wir kommt das englische Wikipedia auf die folgenden Dezimal-Umrechnungen? Also, das 0C zB 32 sei (0C ist ja das gleiche wie C, was in Dezimal 12 sind)?
upload.wikimedia.org/wikipedia/en/7/77/Big-little_endian.png
 
Auf diesen Beitrag antworten »
eulerscheZahl

Das 0C zu 32 ist keine Zahlensystemumrechnung.
Die Ziffern sind auch im Register nummeriert. Das soll einfach die Zuordnung darstellen (man hätte auch eine Beispielzahl nehmen können, die jede Ziffer nur einmal enthält...).

Bei Big Endian kannst du die Bytes aus dem Register einfach alle in der Reihenfolge lassen und als Zahl interpretieren.
0x12345678 (LE) = 0x12 * 256^3 + 0x34 * 256^2 + 0x56 * 256^1 + 0x78 * 256^0 = 305419896
Bei Big Endian musst du vorher die Reichenfolge der Bytes umdrehen:
0x12345678 (BE) = 0x78563412 (LE) = 2018915346

Mit höchstwertig bzw. niederwertig meint man die Position des Bytes innerhalb der Zahl (ganz vorne bzw. ganz hinten). Das hat nichts mit dem tatsächlichen Inhalt des Bytes zu tun.
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »