W sytuacjach, kiedy liczby całkowite lub jakiekolwiek inne dane zapisywane są przy użyciu wielu (przynajmniej dwóch) bajtów, nie istnieje jeden uniwersalny 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 zapisu pozycyjnego liczb lub kierunku pisma w różnych językach – ze strony lewej na prawą albo z prawej na lewą.

Big endian

edytuj

Big endian[1] (spotykane także grubokońcowość[2]) 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[1].

Procesory, które używają formy big endian, to między innymi HP Intel Itanium, SPARC, Motorola 68000[3], PowerPC 970, IBM System/360, Siemens SIMATIC S7.

Jest ona analogiczna do używanego na co dzień przez ludzi sposobu zapisu liczb.

Procesor zapisujący 32-bitowe wartości w pamięci, przykładowo 0x4A3B2C1D 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 ...

Przykładowe formaty plików, które zawierają dane w formacie big-endian[4]:

Little endian

edytuj

Little endian[1] (spotykane także cienkokońcowość[2]) to forma zapisu danych, w której najmniej znaczący bajt (zwany też dolnym bajtem, z ang. low-order byte) umieszczony jest jako pierwszy[1]. Procesory, które używają formy little endian, to między innymi wszystkie z rodziny x86, DEC VAX.

Jest ona odwrotna do używanego na co dzień sposobu zapisu liczb.

Procesor zapisujący 32-bitowe wartości w pamięci, przykładowo 0x4A3B2C1D 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 ...

Przykładowe formaty plików, które zawierają dane w formacie little-endian[4]:

Procesory z możliwością zmiany kolejności bajtów

edytuj

Prócz procesorów, które mają na stałe zaimplementowaną kolejność bajtów, istnieją również takie, w których można przełączyć tryb kolejności (tzw. bi-endian[1]). Należą do nich:

Przykładowe formaty plików, które wspierają dane w obu formatach[4]:

Etymologia

edytuj

Angielskie nazwy big endian i little endian pochodzą z książki Jonathana Swifta Podróże Guliwera i odnoszą się do mieszkańców Liliputu, których spór o to czy ugotowane jajko należy tłuc od grubego (tępego), czy od cienkiego (ostrego) końca, doprowadził do podziału na dwa stronnictwa toczące ze sobą niekończące się, choć bezsensowne, dysputy i wojny[5][3].

Zobacz też

edytuj

Przypisy

edytuj
  1. a b c d e Hook 2005 ↓, s. 81.
  2. a b Ogrodzki 2005 ↓, s. 44.
  3. a b Null i Lobur 2006 ↓, s. 245.
  4. a b c Null i Lobur 2006 ↓, s. 247.
  5. Saltzer i Kaashoek 2009 ↓, s. 158.

Bibliografia

edytuj
  • Byte Ordering and Endianess, [w:] Brian Hook, Write portable code. A guide to developing software for multiple platforms, San Francisco 2005.
  • Jerome H. Saltzer, M. Frans Kaashoek, Principles of Computer System Design. An introduction, Morgan Kaufmann, 2009.
  • Linda Null, Julia Lobur, The Essentials of Computer Organization and Architecture, Second Edition, Jones and Bartlett Publishers, 2006, ISBN 978-0-7637-3769-6.
  • Jan Ogrodzki, Wstęp do systemów komputerowych, Warszawa: Oficyna Wydawnicza Politechniki Warszawskiej, 2005, ISBN 83-7207-529-8.

📚 Artikel Terkait di Wikipedia

Mikołaj Bagiński (przedsiębiorca)

odzieżową Leeves i został prowadzącym audycję dre$$code w Newonce.radio. W czerwcu 2022 powołał grupę Dre$$code zrzeszającą kreatywnych twórców internetowych

Rust (język programowania)

string.into(); for byte in &mut bytes { match *byte { b'a'...b'm' | b'A'...b'M' => *byte += 13, b'n'...b'z' | b'N'...b'Z' => *byte -= 13, _ => {}, //nic

Miü

iM. Ubrania Maciek iM., Code 1: Czy oni są low-key? [online], newonce.net, 19 sierpnia 2021 [dostęp 2025-12-10] . DRE$$CODE [Bagi & Maciek i Ubrania]

ASCII

ASCII (czyt. /ˈæski/, skrót od ang. American Standard Code for Information Interchange) – siedmiobitowy system kodowania znaków, używany we współczesnych

Rodzina (biologia)

higher taxa." International Code of Botanical Nomenclature. Preface: "Scientific names under the jurisdiction of the Code, irrespective of rank, are consistently

Lista państw według wieku zgody

). Code pénal, Article 227-25. legifrance.gouv.fr. [dostęp 2020-04-16]. Code pénal, Article 227-22. legifrance.gouv.fr. [dostęp 2020-04-16]. Code pénal

Fiat Freemont

wariantów Fiata Freemont poszerzył pierwszy wariant specjalny. Wersję Black Code wyróżnia m.in. 19 calowe felgi aluminiowe lakierowane na czarno, czarne wykończenia

G-code

sterowanej numerycznie. G-code opisuje standard ISO 6983, DIN 66025, w Polsce wycofane normy: PN-93/M-55251, PN-73/M-55256. G-code można utworzyć 3 metodami: