VyÜlo v t²denφku: COMPUTERWORLD
╚φslo:37/92
RoΦnφk:1992
Rubrika/kategorie: Co (ne)najdete ve slovnφku

zp∞t do archivu Φlßnk∙ | rejst°φk | p°edchozφ Φlßnek | nßsledujφcφ Φlßnek

Ji°φ Peterka

Little Endian vs. Big Endian

Vybrat si, kdy₧ v ·vahu p°ipadajφ pouze dv∞ mo₧nosti, m∙₧e b²t n∞kdy po°ßdnß fuÜka. ZvlßÜt∞ jde-li o bytφ Φi nebytφ, je rozhodovßnφ opravdu t∞₧kΘ. To snad skuteΦn∞ dokß₧e popsat jen pan Shakespeare.

Princ dßnsk² ovÜem vybφral ze dvou opravdu rozdφln²ch mo₧nostφ. Jsou vÜak i takovΘ situace, kdy ob∞ mo₧nosti vychßzφ prakticky nastejno, ale podstatnΘ je si mezi nimi jednu vybrat a tΘ se pak d∙sledn∞ dr₧et. Jde-li nap°φklad o to, zda auta majφ jezdit vpravo Φi vlevo, nebo zda vyÜÜφ byte dvoubytovΘho slova mß b²t v pam∞ti ulo₧en na ni₧Üφ adrese, nebo naopak na vyÜÜφ.

Existujφ ovÜem i takovΘ p°φpady, kdy vlastn∞ takΘ o nic nejde, ale ze samotnΘho v²b∞ru se d∞lß v∞c zßsadnφho v²znamu. Krom∞ naÜich poslanc∙, bojujφcφch o pomlΦku, to velmi p∞kn∞ parodoval ji₧ v 18. stoletφ Jonathan Swift, ve sv²ch znßm²ch Gulliverov²ch cestßch. Kdy₧ se jeho ztroskotan² nßmo°nφk Lemuel Gulliver dostal do °φÜe liliputskΘ, shledal, ₧e tato je ve vßlce s °φÜφ blefuskußnskou kv∙li tomu, zda vajφΦka se majφ rozbφjet na u₧Üφm, nebo na ÜirÜφm konci. A ₧e neÜlo o spor ledajak², doklßdaly ztrßty na lidsk²ch ₧ivotech, odhadovanΘ na 11 000 udatn²ch bojovnφk∙ jen na stran∞ °φÜe Liliput.

Prßv∞ tento Swift∙v p°φb∞h inspiroval v roce 1980 ameriΦana Danny Cohena p°i psanφ jeho slavnΘho Φlßnku "On Holy Wars and a Plea for Peace" (doslova: O svat²ch vßlkßch a nalΘhavΘ prosb∞ o mφr). Cohen v n∞m poprvΘ v²sti₧n∞ pojmenoval rozdφln² p°φstup k tomu, jak uklßdat do pam∞ti vφcebytovΘ polo₧ky.

N∞kterΘ poΦφtaΦe, jako nap°φklad PDP-10, poΦφtaΦe °ady IBM 360/370, mikroprocesory firmy Motorola a nejnov∞jÜφ procesory architektury RISC to d∞lajφ tak, ₧e zaΦφnajφ od v∞tÜφho (ÜirÜφho) konce: na ni₧Üφ adresu uklßdajφ vyÜÜφ (tj. v²znamn∞jÜφ) byte. Cohen to p°irovnal k rozbφjenφ vajec na ÜirÜφm konci, a k oznaΦenφ p°φsluÜn²ch poΦφtaΦ∙ si vyp∙jΦil p∙vodnφ Swiftovo pojmenovßnφ Blefuskußnc∙: Big Endians (jako₧to lidφ, kte°φ rozbφjφ vajφΦka na ÜirÜφm konci, anglicky: at the big end).

Na opaΦnΘm p≤lu pak stojφ poΦφtaΦe, kterΘ za svΘ oznaΦenφ - Little Endians - vd∞Φφ bojovnφk∙m z °φÜe Liliput, kte°φ poklßdali svΘ ₧ivoty za prßvo rozbφjet vajφΦka na u₧Üφm konci (anglicky: at the little end). Tyto poΦφtaΦe naopak uklßdajφ na ni₧Üφ adresy ni₧Üφ (tj. mΘn∞ v²znamnΘ) byty. Pat°φ mezi n∞ nap°φklad poΦφtaΦe PDP-11 a vÜechny poΦφtaΦe na bßzi mikroprocesor∙ firmy Intel. Tak₧e nap°φklad vÜechna oblφbenß pΘcΘΦka jsou "Little Endians".

Existujφ vÜak i poΦφtaΦe, kterΘ se s problΘmem nejednotnΘ konvence vyrovnßvajφ velmi elegantn∞: nastavenφm p°φsluÜnΘho p°φznaku jim lze p°edepsat, zda se majφ chovat jako "Little Endians" Φi jako "Big Endians". V odbornΘm ₧argonu se takovΘ poΦφtaΦe oznaΦujφ p°φvlastkem bytesexual.


zp∞t do archivu Φlßnk∙ | rejst°φk | p°edchozφ Φlßnek | nßsledujφcφ Φlßnek
Tento Φlßnek m∙₧e b²t voln∞ Üφ°en, pokud se tak d∞je pro studijnφ ·Φely, na nev²d∞leΦnΘm zßklad∞ a se zachovßnφm tohoto dov∞tku. Podrobnosti hledejte zde, resp. na adrese http://archiv.czech.net/copyleft.htm