Little Endian
aus RHWiki, der freien Romhacking-Enzyklopädie
Was ist Little Endian ?
Little Endian (abgekürzt LE) ist ein Format, welches die Ablage von Zahlen im Speicher eines Computers (oder in einer Datei) regelt. Im Detail werden bei LE alle Bytes einer Zahl in die umgekehrte Reihenfolge gebracht.
Übersetzt bedeutet es auch soviel wie "niederwertigstes (Byte) zuerst", also dass von einer Zahl das Byte mit dem kleinsten Stellenwert ganz links abgelegt wird.
Beispiel: 0x7DD402 (Hex-Zahl mit der gerechnet wird) => 02 D4 7D 00 (Speicher)
Das Gegenstück zu LE ist Big Endian (BE), bei dem die Bytes nicht vertauscht werden.
Wozu das alles ?
Es gibt hauptsächlich zwei Gründe für die Verwendung von LE:
Zum einen werden grundlegende mathematische Operationen vereinfacht:
Bei der Addition mit normalen Zahlen beginnt man z.B. immer rechts und rechnet den Übertrag links dazu. Wollte man dasselbe auf einem System mit Big Endian machen, so müsste man auch die Zahlen von rechts nach links ablaufen.
Auf vielen Plattformen sind aber sequentielle Schreib- und Lesevorgänge von links nach rechts optimiert, wodurch Zahlen im LE-Format schneller verarbeitet werden können.
Der zweite Grund ist die einfache Handhabung bei Überläufen:
Die Zahl wird (bei LE) einfach nach rechts erweitert. Es müssen keine Bytes verschoben werden (im Gegensatz zu BE).
Ein Beispiel macht das deutlich:
Die Zahl 0x92C0 (2 Byte) liegt in BE vor: Offset 0 1 2 3 4 5 ... Zahl 92 C0
Nun soll sie auf 4 Bytes vergrößert werden. Dazu muss die ganze Zahl um 2 Bytes nach rechts geschoben werden und links mit Nullen aufgefüllt werden:
Offset 0 1 2 3 4 5 ... Zahl 00 00 92 C0
Dieser Vorgang ist sehr Rechenlastig. Einfacher geht es auf LE-Systemen:
Offset 0 1 2 3 4 5 ... Zahl C0 92 Wird auf 4 Bytes vergößert: Zahl C0 92 00 00
Wobei die Zahl immernoch 0x92C0 ist, nur 2 Bytes mehr Platz zur Verfügung hat, die z.B. bei Rechenoperationen mit größeren Zahlen gebraucht werden können.

