Preskočiť na obsah

Endianita

z Wikipédie, slobodnej encyklopédie
(Presmerované z Little-endian)

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 ...

Tento článok je čiastočný alebo úplný preklad článku Endianita na českej Wikipédii (číslo revízie nebolo určené).