Ich arbeite nicht jeden Tag mit Big-Endian- und Little-Endian-Problemen und daher fällt es mir sehr schwer, mich zu erinnern, welches was ist.
Kürzlich bekam ich ein Interview, in dem ich nach dem Unterschied zwischen den beiden fragte. da ich mich nicht erinnerte, entschied ich mich zu "raten" (immerhin 50% Chance), aber ich scheiterte.
Gibt es einen weithin bekannten praktischen Trick, um sich daran zu erinnern, was der Unterschied zwischen Big Endian und Little Endian ist?
endianness
Emiliano
quelle
quelle
Antworten:
Ich habe immer gedacht, dass es falsch definiert ist, und das ist auch der Tipp, sich daran zu erinnern. Als nicht-englischer Muttersprachler sehe ich "end" als das Gegenteil von "start" (obwohl "end" offensichtlich entweder "end" - "start end" oder "end end" bedeuten kann). Wie auch immer, ich erinnere mich nur daran, dass "es falsch definiert ist" :)
Oder mit Bezug auf die Bit-Endianität :
Obwohl sich die übliche Verwendung des Wortes Endianness darauf bezieht, wie Bytes innerhalb eines Wortes angeordnet sind, bezieht sich seine generische Bedeutung auf die Anordnung von einzeln adressierbaren Unterkomponenten innerhalb der Darstellung eines größeren Datenelements ( wie in Wikipedia erläutert ).
quelle
Mein eigener Tipp:
quelle
Die beste Art, sich daran zu erinnern, ist, dass zivilisierte Völker Abwechslung suchen und ihre Eier daher anders essen, als sie ihre Zahlen bestellen. Während wir Dezimalzahlen schreiben, die mit den großen Ziffern beginnen (Big Endian), essen wir weichgekochte Eier vom kleinen Ende (Little Endian).
quelle
Big-Endian-Zahlen beginnen am "großen Ende". Little-Endian-Zahlen beginnen am "kleinen Ende".
Beide sind eine Anspielung auf die Frage, wo Sie anfangen sollen, Ihr Ei gemäß Gullivers Reisen zu essen.
In diesem Fall ist "Ende" nicht das Gegenteil von "Anfang", sondern bedeutet nur ein Extrem einer (Schnur), so dass sie nicht "großer Finisher" oder "kleiner Finisher" genannt werden (was definitiv der Fall sein würde) das Gegenteil von "Start").
quelle
Am einfachsten fällt es mir ein, das Wort „Endian“ in „Startian“ zu ändern. Große startianische Ganzzahlen beginnen mit dem großen Ende (z. B. die höchstwertigen Bytes kommen zuerst) und kleine startianische Ganzzahlen beginnen mit dem kleinen Ende (z. B. die niedrigstwertigen Bytes kommen zuerst).
quelle
Ich konnte mich nie erinnern, welches "Big-Endian" und welches "Little-Endian" ist, kannte aber die Endianness von PowerPC- und Intel x86-Prozessoren. Little hat die meisten Buchstaben mit Intel gemeinsam, daher ist Intel x86 Little-Endian.
Das ist natürlich nur sinnvoll, wenn Sie die Bytereihenfolge von PPC und x86 kennen. Andererseits sollten Sie sich jetzt daran erinnern, dass Intel x86 = Little-Endian ist. Und denken Sie daran, dass x86 und ARM auch mit völlig unterschiedlichen Befehlssätzen sehr, sehr kompatibel sind.
quelle
Ich würde es so ausdrücken: Groß ist schön!
Groß, schön, richtig.
Die richtige Endianess ist diejenige, die Sie in einem Hexdump lesen können, bei der das höchstwertige Byte an erster Stelle steht, wie bei jedem vernünftigen Menschen.
Wenig hässlich falsch.
Die Hexdumps, die von dieser Endianess produziert werden, sind einfach so falsch, dass Sie schreiend "Gehirne!" Davonlaufen. Vielleicht ist dies eine Art fremder Gräuel, über den Ursprung dieser Gräueltaten können wir nur spekulieren. Trotzdem existiert es und wir bleiben dabei.
Schade, es ist nicht immer die beste Variante, die das Rennen macht ...
quelle
Little == ugly == wrong
... "Auch die kleinste Person kann den Kurs der Zukunft ändern" -Galadrial, LOTRIn Big Endian: (aufsteigend)
Niedrig zu hoch dh
0 | 1 | 2 | 3 ^^ Start Ende
In Little-Endian: (absteigende Reihenfolge)
Absteigend
dh
3 | 2 | 1 | 0 ^ ^ Start Ende
quelle