endianness
Endianness er en informatikk begrep som beskriver hvordan dato er lagret. Spesielt definerer den hvilken ende av en flerbyte data-type inneholder de viktigste verdiene. De to typer endianness er big-endian og little-endian.
Big-Endian
Big-endian er den vanligste måten å lagre på binære data. Den plasserer den viktigste (eller største) verdien først, etterfulgt av mindre signifikante verdier. For eksempel den store endian-representasjonen av heltall 123 plasserer hundreverdien (1) først, etterfulgt av tiereverdien (2), deretter enverdien (3) eller [123].
Little-Endian
Little-endian lagrer den minst signifikante verdien først, etterfulgt av stadig mer betydningsfulle verdier. For eksempel er tallet 123 i liten endian-notasjon [321]. Teksten string "ABC" er representert som [CBA].
Endian konvertering
I de fleste tilfeller, utviklere trenger ikke å spesifisere endighet siden kompilatoren genererer riktig type data for en spesifikk plattform. Et program kan imidlertid trenge å behandle eksternt inngang, som en filformat som lagrer data med en annen endighet. I dette tilfellet må dataene konverteres fra liten-endian til big-endian eller omvendt.
Å konvertere endianness er ikke så enkelt som å reversere dataene. De bytes, snarere enn biter, må reverseres. Med andre ord må hver byte (eller blokk med åtte bits) forbli den samme, men rekkefølgen på bytene endres. Dette kan forklares ved hjelp av heksadesimale eller binær representasjon av data.
For eksempel er heltallet 41,394 XNUMX representert i stor endian notasjon som:
heksadesimal: A1B2
binær: 1010000110110010
Å konvertere disse dataene til liten endian reverserer ikke dataene, men heller de enkelte byte i dataene. Heksadesimal bruker to sifre for å representere hver byte - [A1] [B2], mens binær bruker åtte sifre - [10100001] [10110010].
Derfor er den lille endian-representasjonen av 41,394 XNUMX:
heksadesimal: B2A1
binær: 1011001010100001
NOTAT: Noen prosessorer kan hente data som enten big-endian eller little-endian uten konvertering nødvendig. Dette kalles bi-endian datatilgang.