Endianness (Byte-Reihenfolge)
Kurz: Endianness beschreibt, in welcher Reihenfolge die Bytes einer mehrstelligen Zahl im Speicher liegen. Bei Little-Endian steht das niederwertigste Byte zuerst, bei Big-Endian das höchstwertige.
Genauer: Die 32-Bit-Zahl 0x12345678 besteht aus den Bytes 12 34 56 78. Ein Big-Endian-System legt sie genau so ab, ein Little-Endian-System als 78 56 34 12. Beides ist gültig, Probleme entstehen erst, wenn zwei Systeme Daten austauschen.
Im Detail
- Little-Endian: x86 und die meisten ARM-Systeme im Alltag.
- Big-Endian: Netzwerkprotokolle („Network Byte Order”), manche ältere Architekturen.
- Umrechnung: Funktionen wie
htonsundhtonlwandeln Zahlen in Netzwerk-Reihenfolge. - Dateiformate: Manche legen die Reihenfolge im Header fest (zum Beispiel TIFF), andere schreiben sie fest vor.
- Fehlerbild: Zahlen sehen „völlig falsch” aus, wenn Bytes vertauscht gelesen werden.
Siehe auch: UTF-8 und Zeichenkodierung