Endianita
Endianita je v informatike spôsob uloženia čísel v pamäti počítača, ktorý definuje, v akom poradí sa ukladajú jednotlivé jednotky informácie príslušného údajového typu. Ak ide konkrétne o bajty, označuje sa tiež ako poradie bajtov (angl. byte order).
Rôzne platformy môžu používať rôznu endianitu a tento problém je potrebné brať do úvahy pri prenose binárnych súborov alebo sieťovej komunikácii medzi platformami s rôznou endianitou.
Big-endian
[upraviť | upraviť zdroj]V tomto prípade sa na pamäťové miesto s najnižšou adresou uloží najvýznamnejší bajt (MSB) a zaň sa ukladajú ostatné bajty až po najmenej významný bajt (LSB) na konci. Architektúry uplatňujúce tento princíp sa nazývajú big-endian (mnemotechnická pomôcka: big end first) a patria medzi ne Motorola 68000, SPARC a System/370.
Napr. 32-bitové číslo 0x4A3B2C1D
sa na adresu 100
uloží nasledovne:
100
|
101
|
102
|
103
|
||
...
|
4A
|
3B
|
2C
|
1D
|
...
|
Ľudia, ktorý píšu text latinkou alebo cyrilikou (texty zapisované zľava doprava), používajú kvázi zápis big-endian intuitívne na zápis čísiel – napr. v čísle „125“ je cifra „1“ cifrou s najvyššou hodnotou označujúca počet stoviek niečoho.
Little-endian
[upraviť | upraviť zdroj]V tomto prípade sa na pamäťové miesto s najnižšou adresou uloží najmenej významný bajt (LSB) a zaň sa ukládajú ostatné bajty až po najvýznamnejší bajt (MSB). Architektúry uplatňujúce tento princíp sa nazývajú little-endian (mnemotechnická pomôcka: little end first) a patria medzi ne MOS Technology 6502, Intel x86 a DEC VAX.
Napr. 32-bitové číslo 0x4A3B2C1D
sa na adresu 100
uloží nasledovne:
100
|
101
|
102
|
103
|
||
...
|
1D
|
2C
|
3B
|
4A
|
...
|
Middle-endian
[upraviť | upraviť zdroj]Niektoré architektúry označované ako middle-endian (alebo niekedy mixed-endian) používajú zložitejší spôsob určenia poradia jednotlivých bajtov, ktorý je daný kombináciou oboch vyššie spomenutých spôsobov. Medzi takéto architektúry patrí napr. rodina procesorov PDP-11. Tento formát sa tiež používa na ukladanie čísiel s pohyblivou desatinnou čiarkou a dvojitou presnosťou v systémoch VAX a ARM.
Napr. 32-bitové číslo 0x4A3B2C1D
sa na adresu 100
uloží nasledovne:
100
|
101
|
102
|
103
|
||
...
|
3B
|
4A
|
1D
|
2C
|
...
|
alebo prípadne:
100
|
101
|
102
|
103
|
||
...
|
2C
|
1D
|
4A
|
3B
|
...
|
Zdroje
[upraviť | upraviť zdroj]Tento článok je čiastočný alebo úplný preklad článku Endianita na českej Wikipédii (číslo revízie nebolo určené).