Információs technológia

Endianitás - mitől "kicsi" vagy "nagy" a byte vége?

Mi az az endianitás?

Az endianitás lényege, hogy meghatározza, milyen sorrendben tárolja és olvassa ki a számítógép a több byte-ból álló adatokat.
Másképp fogalmazva: amikor a gép elment egy számot, eldönti, melyik byte kerüljön előre és melyik hátra – ez alapján fogja tudni, hogyan kell azt később helyesen értelmezni vagy továbbítani.
Ez a sorrend az egész számítógépes működésre hatással van, a memória tárolásától a hálózati kommunikációig.

Anime stílusú lány a konyhában, két tojásra mutatva magyarázza az endianitás elvét – Big-Endian és Little-Endian példa.

Honnan jön az endianitás? Gulliver és a lágytojás háborúja

Az endianitás kifejezés nem a számítástechnikából, hanem az irodalomból szármatik. Jonathan Swift 1726-ban írta meg a Gulliver utazásai című regényét, melyben főhőse, Gulliver különös világokba látogat el. 
Az egyik ilyen országban az emberek két csoportra szakadtak – és egy egészen banális dolog miatt évtizedek óta háborúztak

A vita tárgya – melyik végén kell feltörni a lágytojást?
A Bid-Endienek szerint a nagyobb, vastagabb végén, míg a Little-Endienek szerint a kisebb, hegyesebb végén illik feltörni. 
A vita annyira elmérgesedik, hogy a két oldal háborút vív

És mi köze ennek a számítógépekhez?

Amikor az 1980-as években a számítógép-architektúrák elkezdtek különbözni abban, melyik byte-ot teszik előre a több-byte-os adatokban. Két fejlesztői tábor alakult ki:

Anime stílusú illusztráció Gulliverről, aki egy tojást tart a kezében, miközben a kisemberek az endianitás eredetét jelképezik Jonathan Swift történetéből.
  • az egyik a Big-Endian,

  • a másik a Little-Endian formátumot tartotta logikusabbnak. Egy 1980-as esszében, Danny Cohen Swift regényét idézve használta először az edianness szót a számítógépes világban – és ez a név azóta is megmaradt. 

Bájtsorrend a számítógépeken

A bájtsorrend, vagyis az endianitás arról szól, hogy a gép melyik végéről kezdi olvasni és tárolni az adatokat.
Képzeld el, hogy a memóriád egy házsor, ahol minden ház egy bájtot jelent. Egy szám, mondjuk a 4A 3B 2C 1D – négy ilyen házban lakik. A kérdés az: a postás a legnagyobb helyiértékű bájttal (4A) kezdi a kézbesítést, vagy a legkisebbel (1D)?

Itt válik el a két világ

 

Anime stílusú illusztráció, amely a bájtsorrendet mutatja be: bal oldalon egy postás áll levelet tartva, jobbra négy kis ház sorakozik 4A, 3B, 2C, 1D felirattal, az út balról jobbra halad, szemléltetve a memóriacímek sorrendjét.

Big-Endian - a klasszikus rendpárti

Ebben a világban a számokat úgy tárolják, ahogy mi olvassuk: a nagyobb érték kerül előre, a kisebb pedig utána. Tehát ha a szám 4A3B2C1D, akkor az így néz ki a memóriában. Ez az elrendezés logikus és tiszta. A legtöbb hálózati szabvány (például az IP-címek kezelése) ezt a rendszert használja. 

Little Endian

A Little Endian gépek másképp gondolkoznak. Miért kezdenék a naggyal, ha a kicsi is elég? Ők a legkisebb helyiértékkel kezdik a tárolást, tehát a 4A3B2C1D szám fordítva kerül a memóriába

Ez kicsit olyan, mintha a számokat visszafelé írnád a füzetbe – de a gép számára ez hatékonyabb lehet. Miért? 
Mert ha például csak a szám alsó bájtját akarja olvasni, nem kell végigböngésznie az egészet – elég az első cím. Az Intel processzorok ezt a Little-Endian módszert használják, ezért hívják sokan egyszerűen Intel formátumnak. Ha nem kötik ki külön, akkor ezt a formátumot értjük alapértelmezetten. 

Big-Endian

BE
32 bites érték: 4A 3B 2C 1D – legnagyobb bájt elöl
MemóriacímÉrték
1004A
1013B
1022C
1031D

Little-Endian

LE
32 bites érték: 4A 3B 2C 1D – legkisebb bájt elöl
MemóriacímÉrték
1001D
1012C
1023B
1034A

Miért fontos az endianitás a való életben?

A számítógépek nemcsak magukban dolgoznak: adatokat küldenek egymásnak hálózaton keresztül.
Ahhoz, hogy ezt jól értsék egymás között, mindenki ugyanabban a sorrendben kell, hogy kezelje a bájtokat.

A hálózatok Big-Endian sorrendet használnak — ez az úgynevezett „network byte order”.
Ezért ha a te géped Little-Endian (például az Intel vagy AMD processzoros számítógépek ilyenek),
akkor amikor adatot küldesz vagy fogadsz, a gépnek előtte át kell fordítania a bájtok sorrendjét.

Képzeld el, mintha két ember levelezne, de egyikük mindig balról jobbra ír, a másik jobbról balra — ha nem egyeznek meg, a mondatok értelmetlenné válnak.

A hálózatban a htonl() és ntohl() (vagyis host to network és network to host) függvények végzik ezt az „átfordítást”, hogy a címzettek mindig jól értsék a küldött adatokat.

Fájlformátumok és „adatnyelvek”

Amikor egy fájlban adatokat tárolunk, a gépnek tudnia kell, milyen sorrendben kerültek a bájtok bele.
Ezért a legtöbb fájltípusnak van egy apró jelzése, ami megmondja: „én bizony Big vagy Little Endian vagyok”.

Például:

  • a BMP és WAV fájlok többnyire Little-Endian sorrendűek (mint a Windows-gépek),

  • a PNG képek és a hálózati csomagok viszont Big-Endian-ként működnek,

  • a TIFF fájlok pedig trükkösek: a fájl elején két betű (II vagy MM) mutatja meg, melyik sorrendet használják.

Így, ha a programod tudja, mit olvas, nem fogja „fejjel lefelé” értelmezni az adatokat.

Szövegkódolás – amikor a betűk sem egyformák

A számítógépben a betűk is számokká alakulnak.
Az UTF-16 és UTF-32 kódolások több bájtot használnak egy karakterhez, és itt is számít a sorrend.
Hogy ne keveredjen össze a rendszer, minden ilyen fájl elején ott van egy apró jelzés, a BOM (Byte Order Mark):

  • FF FE → a fájl Little-Endian,

  • FE FF → a fájl Big-Endian.

Az UTF-8 már modernebb, ott a sorrend mindig ugyanaz, ezért nincs is szükség ilyen jelzésre.

Bájtsorrend a dátumokban

Az endianitás nemcsak a számítógépekben él – a mindennapi életben is találkozunk vele. Például akkor, amikor leírunk egy dátumot:

Az amerikaiak így írják le: 10/22/2025 -> hónap, nap, év
A legtöbb európai így írja le: 22. 10. 2025 -> nap, hónap, év
A japánok és mi is így: 2025. 10. 22. -> év, hónap, nap
Mind ugyanazt az információt tartalmazza, csak más a sorrend, pont mint a bájtoknál. Az egyiknél a nagy (év) van az elején, másiknál a kicsi (nap)

Aranyos, mosolygó naptár illusztráció pasztell színekben, amely a dátumformátumok különbségét jelképezi a bájtsorrend magyarázatához.

Bájtsorrend a címzésnél

A bájtsorrend megérthető egy postacímmel is. 
Általában a legkisebb egységgel kezdik (a címzett neve), majd következik a ház száma, az utca neve, város neve, régió, majd az ország. (Magyarországon kevert címzést használunk).
Néhány ázsiai ország, köztük Japán a nagy az elején rendszert használja: a cím az országgal kezdődik, majd a régia, város, és a címzett neve. 

Régi, szalaggal átkötött levelek csomagja, amely a postai címzések sorrendjét és a bájtsorrend analógiáját szemlélteti.

Még a nyelvben is megtalálható!

Ha magyarul azt mondod, hogy háromszáz-huszonnégy, akkor „nagy az elején” módon gondolkodsz.
De ha németül mondod, az vierundzwanzig (szó szerint „négy és húsz”) – tehát „kicsi az elején”!
Látszik, hogy a nyelvek is más sorrendet szeretnek — pont, mint a processzorok.

Lecke vége: anime lány V-jelet mutat, laptopon Visual Studio Code, mellette bögre tea és alvó cirmos macska, konfettivel.

Ha szeretnéd folytatni a tanulást, itt válogathatsz az információs technológia anyagok között

Fixpontos számrendszerek

Fixpontos számrendszerek

A számítógépek világa tele van különleges logikával – és a fixpontos számrendszerek pont egy olyan téma, ami elsőre bonyolultnak tűnhet, de valójában nagyon izgalmas!Ebben a leckében anime-lány kalauzunk segít megérteni, hogyan működnek ezek a rendszerek: mit jelent a...

bővebben
Előjeles kettes komplemens

Előjeles kettes komplemens

Az előző leckében már megtanultuk, hogyan működik a 2’s komplemens,és azt is láttuk, hogy ez a módszer teszi lehetővé, hogy a számítógép kivonást is összeadással tudjon elvégezni.(Aki lemaradt róla, itt tudja bepótolni 👉 Kettes komplemens – avagy hogyan gondolkodik a...

bővebben
1’s komplemens – így fordítja meg a gép a biteket

1’s komplemens – így fordítja meg a gép a biteket

Képzeld el, hogy a számítógép minden 0-t 1-re, és minden 1-et 0-ra cserél — ez az 1’s komplemens varázsa. 💡Ezzel a trükkel a gép a negatív számokat is el tudja tárolni anélkül, hogy külön „mínuszjelet” használná.A mai leckében anime-lányunk megmutatja, hogyan...

bővebben