Endian

Från Wikipedia
Hoppa till: navigering, sök
Ett ägg i en äggkopp, med den smalare – Little-Endian för att använda liknelsen med Swift – delen uppåt.
Big-endian
Little-endian

Endian beskriver hur byteordningen i ett digitalt ord är upplagt. Det används vanligen i de två varianterna Big-Endian och Little-Endian.

Big-Endian och Little-Endian[redigera | redigera wikitext]

Processorer från bland annat Motorola använder rak byteordning, vilket innebär att den högsta byte kommer först i minnet och den lägsta kommer sist. Detta kan jämföras med ett decimalt system där hundratalen kommer först, sedan tiotal och sist ental. Detta format kallas Big-Endian (big-endian).

Intel använder omvänd byteordning, vilket innebär att den lägsta byten kommer först och den högsta byten kommer sist (som om vi skulle skriva ental först, följt av tiotal etc.). Detta kallas Little-Endian (little-endian). Alla typer av programkod som direkt skriver ett heltal över flera byte på nätverk eller som fil måste hantera byteordningsproblematiken, för att man skall kunna uppnå kompatibilitet mellan de två systemen. Det gäller även när man skickar flyttal även om det inte är lika vanligt, eller Unicode-formatet UTF-16 (men vanligen används för att skicka Unicodetext formatet UTF-8 som inte har detta problem). Microsoft Notepad kallar formatet UTF-16LE för "Unicode" av historiska skäl eftersom UTF-16 är äldre och Little-Endian används internt på Windows-datorer, trots att UTF-8 ska föredras i filer och därefter UTF-16BE.

Många binära protokoll på Internet använder Big-Endian, vilket därför ibland har kallats "Network Byte Order" (främst på system som själva har omvänd byteordning). Microsoft Windows-datorer använder Little-Endian, medan Apple Macintosh använder Big-Endian. Linux, Android och alla Java-program kan använda vilket som internt, men ska använda Big-Endian i nätverkskommunikation.

Etymologi[redigera | redigera wikitext]

Termen big-endian kommer ursprungligen från Jonathan Swifts satiriska roman Gullivers resor från 1726. Dataingenjören Danny Cohen införde det 1980 som ett begrepp inom datorvärlden.[1] I sin roman beskrev Swift spänningarna i de båda rikena Lilliput och Blefuscu; medan kungliga påbud i Lilliput krävde att man skulle knacka sitt (löskokta) ägg i den smalare änden, var invånarna i det rivaliserande kungadömet Blefuscu tillsagda att knacka sina ägg i den tjocka änden. Detta gav de senare deras benämning som Big-endians – "storändianer".[2]

Referenser[redigera | redigera wikitext]

  1. ^ Danny Cohen (1980-04-01), On Holy Wars and a Plea for Peace, http://www.ietf.org/rfc/ien/ien137.txt, ”...which bit should travel first, the bit from the little end of the word, or the bit from the big end of the word? The followers of the former approach are called the Little-Endians, and the followers of the latter are called the Big-Endians.” 
  2. ^ Jonathan Swift (1726). Gulliver's Travels. http://en.wikisource.org/wiki/Gulliver%27s_Travels/Part_I/Chapter_IV. ”Which two mighty powers have, as I was going to tell you, been engaged in a most obstinate war for six-and-thirty moons past. (...) the primitive way of breaking eggs, before we eat them, was upon the larger end; (...) the emperor his father published an edict, commanding all his subjects, upon great penalties, to break the smaller end of their eggs. (...) Many hundred large volumes have been published upon this controversy: but the books of the Big-endians have been long forbidden (...)”