Kolejność bajtów
Z Wikipedii
W sytuacjach, kiedy liczby całkowite lub jakiekolwiek inne dane zapisywane są przy użyciu wielu (przynajmniej dwóch) bajtów, nie istnieje jeden unikalny sposób uporządkowania tych bajtów w pamięci lub w czasie transmisji przez dowolne medium i musi być użyta jedna z wielu konwencji ustalająca kolejność bajtów (ang. byte order lub endianness). Jest to analogiczne do rozwiązań użytych w różnych językach pisanych, w niektórych z nich pisze się ze strony lewej na prawą, a w innych z prawej na lewo.
Big endian (spotykane także grubokońcowość) to forma zapisu danych, w której najbardziej znaczący bajt (zwany też górnym bajtem, z ang. high-order byte) umieszczony jest jako pierwszy. Procesory, które używają formy big endian, to między innymi SPARC, Motorola 68000, PowerPC 970, IBM System/360.
Procesor zapisujący 32-bitowe wartości w pamięci, przykładowo 4A3B2C1D pod adresem 100, umieszcza dane, zajmując adresy od 100 do 103 w następującej kolejności:
100 |
101 |
102 |
103 |
||
... |
4A |
3B |
2C |
1D |
... |
Little endian (spotykane także cienkokońcowość) to forma zapisu danych, w której mniej znaczący bajt (zwany też dolnym bajtem, z ang. low-order byte) umieszczony jest jako pierwszy. Procesory, które używają formy little endian, to między innymi Intel x86, AMD64, DEC VAX.
Procesor zapisujący 32-bitowe wartości w pamięci, przykładowo 4A3B2C1D pod adresem 100, umieszcza dane zajmując adresy od 100 do 103 w następującej kolejności:
100 |
101 |
102 |
103 |
||
... |
1D |
2C |
3B |
4A |
... |
Istnieją także procesory, w których można przełączyć tryb kolejności bajtów, należą do nich na przykład PowerPC (do serii PowerPC G4), SPARC.
Angielskie nazwy "big endian" i "little endian" pochodzą z książki Swifta Podróże Guliwera i odnoszą się do mieszkańców Liliputu, którzy zawsze tłukli jajko od grubego (lub cienkiego) końca, prowadząc przy tym bezsensowny i błahy spór z osobnikami, którzy uważali, iż jajko należy tłuc z drugiej strony.