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 likställas med ett decimalt system där hundratalen (mest signifikanta siffran) kommer först, sedan tiotal och sist ental (minst signifikanta siffran). 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 (eller annan numerisk kod) ö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 Unicode-formatet UTF-16 (men vanligen används på nätet UTF-8 där ordningen är väldefinierad). Microsoft Notepad kallar av historiska skäl formatet UTF-16LE för "Unicode", eftersom det är det Unicode-format som används internt på Windows-datorer.

Många binära protokoll på Internet använder Big-Endian, vilket därför ibland kallas "Network Byte Order" (främst på system som själva har omvänd byteordning). Microsoft Windows använder Little-Endian, medan Apple Macintosh använder Big-Endian. Linux, Android och alla Java-program kan använda vilket som internt (ofta enligt använd maskinvara). De system som stödjer både Big- och Little-endian benämns Bi-endian.

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 (...)”