EMZETT.
Login

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 htons und htonl wandeln 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