Toppfrågor
Tidslinje
Chatt
Perspektiv

Endian

beskriver hur byteordningen i ett digitalt heltal med flera bytes är upplagt Från Wikipedia, den fria encyklopedin

Endian
Remove ads

Endian beskriver hur byteordningen i ett digitalt heltal med flera bytes är upplagt. Det används vanligen i de två varianterna Big-Endian och Little-Endian. Ibland kallas de Motorola respektive Intel-ordning.

Thumb
Ett ägg i en äggkopp, med den smalare – Little-Endian för att använda liknelsen med Swift – delen uppåt.
Thumb
Big-endian
Thumb
Little-endian

Big-Endian och Little-Endian

Sammanfatta
Perspektiv

Processorer från bland annat Motorola använder rak byteordning för heltal, 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). Talets slut (end) finns på höga (big) adresser. Begreppet kan förvirra, att man tror att bytes som ger högst värde i ett heltal (big) ligger sist, listas till höger, men så är det inte.

Intel använder omvänd byteordning, vilket innebär att den lägsta byten kommer först och den högsta byten kommer sist för heltal (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 som har väldefinierad byte-ordning). 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. Normalt har filer (till exempel HTML) med UTF-16 ett särskilt "byte order mark" först, talet 0xFEFF som lagras som FE,FF i big-endian och FF,FE i little-endian.

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.

Remove ads

Etymologi

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]

Remove ads

Referenser

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads