Endianness
Van Wikipedia
"Endianness" verwijst in het algemeen naar manieren om een ééndimensioneel systeem (zoals computergeheugen) in een volgorde na mekaar te bekijken. Er zijn twee hoofdsoorten: big-endian en little-endian. Sommige systemen hebben aspecten van beide, die noemt men middle-endian. Als men spreekt over computers wordt endianness ook de bytevolgorde genoemd.
[bewerk] Endianness bij computers
Geen van beide systemen heeft specifieke voordelen, maar Intel gebruikt in zijn x86-processors het little-endian-systeem, waardoor deze tegenwoordig veruit het meest toegepast wordt. Bij de uitwisseling van gegevens tussen computers met verschillende endianness kunnen fouten ontstaan indien geen rekening wordt gehouden met dit verschil.
Bij het bewaren van een 32 bitswaarde, bijvoorbeeld 4A3B2C1D
(hexadecimale notatie) op geheugenplaats 100
, kunnen de verschillende bytes als volgt bewaard worden:
Big-endian
100 |
101 |
102 |
103 |
||
... |
4A |
3B |
2C |
1D |
... |
De meest beduidende byte 4A
wordt hier dus eerst geplaatst. Dit noemt men big-endian (ezelsbruggetje: "big end first"). Dit wordt onder andere toegepast in Motorola 68000, SPARC en System/370.
Little-endian
100 |
101 |
102 |
103 |
||
... |
1D |
2C |
3B |
4A |
... |
Hier wordt de minst beduidende byte eerst gezet, en dit heet little-endian (ezelsbruggetje: "little end first"). Dit wordt toegepast in MOS Technology 6502, DEC VAX, en Intel x86.
Middle-endian
100 |
101 |
102 |
103 |
||
... |
3B |
4A |
1D |
2C |
... |
of nog:
100 |
101 |
102 |
103 |
||
... |
2C |
1D |
4A |
3B |
... |
Dit wordt gebruikt bij PDP-11-processors.
[bewerk] Etymologie
De termen big-endian en little-endian komen van de bevolkingsgroepen Big-Endians en Little-Endians uit de roman Gullivers reizen van Jonathan Swift. In het verhaal over Lilliput bestaat onenigheid tussen de twee bevolkingsgroepen over welk eind van een gekookt ei moet opengemaakt worden.
De keuze tussen big-endian en little-endian heeft geleid tot hoog oplopende discussies. Omdat het onderwerp eigenlijk futiel was, verwijzen de namen naar dit verhaal.
Een veelgehoord argument ten faveure van big-endian is dat het overeenkomt met de ordening in de menselijke taal. Dit is echter niet altijd het geval, in het bijzonder in het Nederlands. In het Nederlands spreekt men "24" uit als "vier-en-twintig", waarbij het minst significante getal eerst wordt uitgesproken. Bij hondertallen en hoger is er sprake van "gemengde endianness", "124" spreken we uit als "honderd-vier-en-twintig". Het Engels is volledig big-endian ("twenty-four" en "hundred-twenty-four") en het Sanskriet is volledig little-endian ("chaturvinsh" (24, letterlijk "vier-en-twintig") en chaturvinshatyadhikashatatam (124, letterlijk "vier-en-twintig-over-honderd")). In geschreven taal komen ook zowel big- als little-endian vormen voor.