információtechnológia

Endianitás

Fogalmak


Big Endian:

  • A szám bájtjai az eredeti sorrendben kerülnek a memóriába.

Mi az endianitás?

Az endianitás egy olyan számítástechnikai fogalom, amely azt határozza meg, hogy a számítógép hogyan rendezi el a memóriájában a több bájtból álló adatokat, például a 32 vagy 64 bites számokat. Ez különösen fontos, amikor adatokat tárolunk vagy továbbítunk, mivel az eltérő endianitású rendszerek különböző módon értelmezhetik az adatokat.

Az endianitás típusai

Két fő típusa létezik:

  1. Big Endian (nagy a végén): A szám legnagyobb helyi értékű bájtja (MSB – Most Significant Byte) kerül az első helyre, azaz a memóriában a legalacsonyabb címre.
  2. Little Endian (kicsi a végén): A szám legkisebb helyi értékű bájtja (LSB – Least Significant Byte) kerül az első helyre, azaz a memóriában a legalacsonyabb címre.

Példa: 3A 4B 1C 2D (32 bites szám)

  • Big Endian:
    • A szám bájtjai az eredeti sorrendben kerülnek a memóriába.
Memóriacím Tartalom
0x100 3A
0x101 4B
0x102 1C
0x103 2D

Little Endian:

  • A szám bájtjai fordított sorrendben kerülnek a memóriába.
Memóriacím Tartalom
0x100 2D
0x101 1C
0x102 4B
0x103 3A

Hogyan emlékezzünk rá?

Képzelj el két tojást:

  • A Big Endian a tojás széles alját nyitja ki először.
  • A Little Endian a tojás kicsi végét bontja meg először.

Ezt az analógiát egy híres regény, Swift Gulliver utazásai ihlette, ahol két csoport vitatkozott arról, hogyan kell helyesen feltörni egy tojást.


 

Miért fontos mindez?

 

  • Adatok továbbítása: Ha két különböző endianitású rendszer kommunikál (például két számítógép), akkor fontos figyelni arra, hogy megfelelő sorrendben olvassák az adatokat.
  • Processzorok típusai:
    • A Little Endian az Intel és az AMD processzoroknál gyakori.
    • A Big Endian inkább beágyazott rendszereknél használatos, például FPGA-k vagy PowerPC processzorok esetében.

Endianitás

Feladatok

1. feladat

Feladat: Big és Little Endian ábrázolás

Adott egy 32 bites szám: 7A 8B 9C AD.

  • a) Írd le a számot Big Endian formátumban, ha a memóriacímek a 0x0, 0x1, 0x2, 0x3.
  • b) Írd le a számot Little Endian formátumban ugyanazokra a memóriacímekre!

Big Endian formátum

A Big Endian szabály szerint a számok az eredeti sorrendjükben kerülnek a memóriába, kezdve a legnagyobb helyi értékű bájttal.

Memóriacím Tartalom
0x0 7A
0x1 8B
0x2 9C
0x3 AD


Little Endian formátum

A Little Endian szabály szerint a számok fordított sorrendben kerülnek a memóriába, kezdve a legkisebb helyi értékű bájttal.

Memóriacím Tartalom
0x0 AD
0x1 9C
0x2 8B
0x3 7A

2. Feladat: Ábrázolja a „2A 3B 4C 1F” 32-bites értéket LE illetve BE formátumokban a 0x0-tól kezdődően (bytos tárolási egységekben) növekvő címeken. 

    Big Endian formátum

    A Big Endian szabály szerint a legnagyobb helyi értékű bájt kerül az első helyre (0x0 címre), és a szám eredeti sorrendjét követi.

    Memóriacímek és tartalom Big Endian szerint:

    Memóriacím Tartalom
    0x0 2A
    0x1 3B
    0x2 4C
    0x3 1F

    Tehát Big Endian formátumban a memória így néz ki: 2A 3B 4C 1F

      Little Endian formátum

      A Little Endian szabály szerint a legkisebb helyi értékű bájt kerül az első helyre (0x0 címre), és a szám bájtjait fordított sorrendben tároljuk.

      Memóriacímek és tartalom Little Endian szerint:

      Memóriacím Tartalom
      0x0 1F
      0x1 4C
      0x2 3B
      0x3 2A

      Tehát Little Endian formátumban a memória így néz ki: 1F 4C 3B 2A