Für Nicht-Informatiker: Die Endianness oder Byte-Order einer Computerarchitektur gibt an, in welcher Reihenfolge der Prozessor Bytes im Speicher interpertiert.
Auf modernen Systemen ist ein Byte i.d.R. 8 Bit groß, und jedes Byte ist einzeln addressierbar. Praktisch immer hat man aber Zahlenwerte, die nicht in ein Byte passen (d.h. die größer als 255 sind). CPUs laden diese mehreren Bytes, indem sie entsprechend viele Bytes (z.B. 4 Bytes) startend bei der Adresse des ersten Bytes lesen.
Der Unterschied bei der Byte-Order ist jetzt dass für manche Architekturen das geringwertigste Byte an der niedrigsten Adresse (big endian) steht und für andere an der höchsten (little endian). Die Hexadezimalzahl 91929394 könnte also als big-endian durch die Bytefolge (91, 92, 93, 94) dargestellt werden oder als little-endian durch die Bytefolge (94, 93, 92, 91).
Historisch hat das den Grund, dass manche Operationen in der einen oder anderen Variante schneller zu verarbeiten sind. Probleme bereitet das eigentlich nur, wenn man anfängt, die Daten byteweise zu interpretieren, zum Beispiel wenn man einen Speicherbereich einfach in eine Datei schreibt. Wenn man die Datei dann zu einem System mit einer anderen Byte Order kopiert, kann man sie nicht mehr korrekt lesen. Außerdem macht ist little-endian beim Debuggen ein bisschen schwieriger zu lesen.
Für die meisten nicht-Informatiker ist das vollkommen egal, und auch viele Informatiker müssen sich nur sehr selten um endianness kümmern. Mir ist heute aber aufgefallen, dass es bei der deutschen Bahn etwas Analoges dazu gibt: Wagennummern und Sitzplatznummern.
Ich habe früher nie darauf geachtet, ob die Wagennummern im Zug und die Sitzplatznummern in derselben Richtung wachsen. Ich habe immer erst bei der Einfahrt des Zuges entschieden, welche Tür ich nehme. Letzten Mittwoch habe ich aber mal darauf geachtet, kann mich aber nicht mehr an das Ergebnis erinnern. War aber meine ich Big-Endian, also wachsen die Sitzplatznummern in dieselber Richtung.
Heute war es anders, als Skizze:
Es war also little-endian. Konkreter: Ich musste zu einem Platz in Wagen 5, Platznummer > 100, und die Wagen kamen in der Reihenfolge 9, 8, 7, 6, 5… an. Also dachte ich, ich müsste an der Tür einsteigen, die näher an Wagen 6 liegt, weil das ja eine einheitliche Reihenfolge wäre.
Dem war aber nicht so, die Platznummern waren anders herum. Und vermutlich ist das nicht immer einheitlich. Das soll jetzt keine Beschwerde sein, ich fand nur, es war ein ganz interessanter Fakt. Und ein schönes Beispiel, an dem man Endianness erklären kann :)