Der Martin: Big-Endian oder Little-Endian?

Beitrag lesen

Hi,

Nun hatte ich eigentlich gedacht, dass ich Little Endian nutzen müsste, weil für 0x01 nachher ja

00        01
00000000  00000001

In den Bytes des Strings stehen soll.

also Low Byte first, wie wir es gewöhnt sind.

Wie ist es denn nun richtig? Welche Bezeichnung steht für welche Darstellung in meinem Array?

Ehrlich gesagt, ich kann die Bezeichnungen "Little Endian" oder "Big Endian" auch nie richtig zuordnen, zumal sie nicht wirklich logisch sind. Ich bevorzuge die Bezeichnungen "Intel Byte Order" bzw. "Motorola Byte Order".

* Bei Big-Endian (wörtlich „Groß-Ender“, siehe auch Abschnitt Etymologie) wird das höchstwertige Byte zuerst gespeichert, das heißt an der kleinsten Speicheradresse.

Und das widerspricht doch der Bezeichnung, denn "Big Endian", also "das Große am Ende" suggeriert doch, dass zuerst das niederwertige Byte kommt, und am Ende das höchstwertige.

* Bei Little-Endian (wörtlich „Klein-Ender“) wird dagegen das kleinstwertige Byte an der Anfangsadresse gespeichert beziehungsweise die kleinstwertige Komponente zuerst genannt

Also auch genau verkehrtrum bezeichnet, denn da steht das _höchst_wertige Byte am Ende.

Ich hatte nur noch in Erinnerung, dass Little-Endian das "verdrehte Intel-Format" ist, habe mich aber trotzdem wieder von den Begriffen ins Bockshorn jagen lassen.

Außerdem ist das Intel-Format IMO das intuitivere der beiden. Aber das ist vielleicht auch eine Frage der Gewöhnung oder der frühkindlichen Prägung: Ich habe meine erste Bekanntschaft in dieser Dimension als Teenager mit der CPU-Familie 6502 gemacht, die das Intel-Format (low byte first) verwendet. Daher kam mir das Motorola-Format, das ich erst später kennengelernt habe, immer irgendwie "falsch" vor.

So long,
 Martin

--
why the heck do you jerk think, that wir ein doppelposting nicht bemerken, wenn you zwischendurch the sprache wechselst?
  (wahsaga)
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(