Endianita
Z Wikipedie, otevřené encyklopedie
Endianita je v informatice způsob uložení čísel v paměti počítače, který definuje, v jakém pořadí se uloží jednotlivé bajty příslušného datového typu. Označuje se také jako pořadí bajtů (anglicky byte order).
Různé platformy mohou používat různou endianitu a tento problém je nutné brát v úvahu při přenášení binárních souborů nebo síťové komunikaci mezi takovými platformami.
[editovat] Big-endian
V tomto případě se na paměťové místo s nejnižší adresou uloží nejvíce významný bajt (MSB) a za něj se ukládají ostatní bajty až po nejméně významný bajt (LSB) na konci. Architektury uplatňující tento princip se nazývají big-endian (mnemotechnická pomůcka: big end first) a patří mezi ně Motorola 68000, SPARC a System/370.
Např. 32bitové číslo 0x4A3B2C1D
se na adresu 100
uloží takto:
100 |
101 |
102 |
103 |
||
... |
4A |
3B |
2C |
1D |
... |
[editovat] Little-endian
V tomto případě se na paměťové místo s nejnižší adresou uloží nejméně významný bajt (LSB) a za něj se ukládají ostatní bajty až po nejvíce významný bajt (MSB). Architektury uplatňující tento princip se nazývají little-endian (mnemotechnická pomůcka: little end first) a patří mezi ně MOS Technology 6502, Intel x86 a DEC VAX.
Např. 32bitové číslo 0x4A3B2C1D
se na adresu 100
uloží takto:
100 |
101 |
102 |
103 |
||
... |
1D |
2C |
3B |
4A |
... |
[editovat] Middle-endian
Některé architektury označované middle-endian (nebo někdy mixed-endian) užívají složitější způsob pro určení pořadí jednotlivých bajtů, který je dán kombinací obou výše zmíněných způsobů. Mezi takovéto architektury patří např. rodina procesorů PDP-11. Tento formát je také použit pro ukládání čísel s pohyblivou řádovou čárkou a dvojitou přesností v systémech VAX a ARM.
Např. 32bitové číslo 0x4A3B2C1D
se na adresu 100
uloží takto:
100 |
101 |
102 |
103 |
||
... |
3B |
4A |
1D |
2C |
... |
nebo případně:
100 |
101 |
102 |
103 |
||
... |
2C |
1D |
4A |
3B |
... |