Byte-Reihenfolge
Die Byte-Reihenfolge ist ein Begriff aus der Informatik, der beschreibt, wie Daten gespeichert werden. Genauer gesagt legt sie fest, welcher Teil eines mehrstelligen Datentyps die höchstwertigen Werte enthält. Die beiden Arten der Byte-Reihenfolge sind Big-Endian und Little-Endian.
Big-Endian
Big-Endian ist die häufigste Methode zum Speichern binärer Daten. Dabei wird zuerst der höchstwertige (oder größte) Wert gespeichert, gefolgt von den weniger wichtigen Werten. Die Big-Endian-Darstellung der Ganzzahl 123 platziert beispielsweise den Hunderterwert (1) an erster Stelle, gefolgt vom Zehnerwert (2) und dann vom Einerwert (3), also [123].
Little-Endian
Bei Little-Endian wird zuerst der niedrigstwertige Wert gespeichert, gefolgt von zunehmend höherwertigen Werten. Die Zahl 123 wird in Little-Endian-Schreibweise beispielsweise als [321] dargestellt. Die Zeichenfolge "ABC" wird als [CBA] dargestellt.
Umwandlung der Byte-Reihenfolge
In den meisten Fällen müssen Entwickler die Byte-Reihenfolge nicht angeben, da der Compiler den richtigen Datentyp für eine bestimmte Plattform erzeugt. Ein Programm muss jedoch möglicherweise externe Eingaben verarbeiten, etwa ein Dateiformat, in dem Daten mit einer anderen Byte-Reihenfolge gespeichert werden. In diesem Fall müssen die Daten von Little-Endian in Big-Endian oder umgekehrt umgewandelt werden.
Die Umwandlung der Byte-Reihenfolge ist nicht so einfach wie das Umkehren der Daten. Es müssen die Bytes und nicht die Bits umgekehrt werden. Mit anderen Worten: Jedes Byte (also jeder Block aus acht Bits) muss unverändert bleiben, aber die Reihenfolge der Bytes wird geändert. Dies lässt sich anhand der hexadezimalen oder binären Darstellung von Daten erklären.
Die Ganzzahl 41.394 wird beispielsweise in Big-Endian-Schreibweise folgendermaßen dargestellt:
hexadezimal: A1B2
binär: 1010000110110010
Bei der Umwandlung dieser Daten in Little-Endian werden die Daten nicht umgekehrt, sondern die einzelnen Bytes innerhalb der Daten. Bei der hexadezimalen Darstellung werden zwei Ziffern verwendet, um jedes Byte darzustellen – [A1][B2], während die binäre Darstellung acht Ziffern verwendet – [10100001][10110010].
Daher lautet die Little-Endian-Darstellung von 41.394:
hexadezimal: B2A1
binär: 1011001010100001
NOTE: Einige Prozessoren können Daten sowohl als Big-Endian als auch als Little-Endian ohne erforderliche Umwandlung abrufen. Dies wird als bidirektionaler Datenzugriff bezeichnet.
Testen Sie Ihr Wissen