Információs technológia

Egész típusú számrendszer

Elgondolkodtál már azon, hogyan látja a számokat egy számítógép? 🤔


Mi emberek könnyedén használunk pozitív és negatív számokat, de a gép számára a világ csak 0 és 1.
Ennek ellenére bármilyen számot, szöveget vagy képet elő tud állítani — de hogyan?

Így tanítja meg az anime-lány, hogyan lesz a 0-ból és 1-ből egész szám, egész típusú számrendszerek

Mit nevezünk egész típusú számrendszernek?

Amikor programozásban, elektronikában vagy akár játékkészítésben dolgozunk, a számítógépnek mindig pontosan tudnia kell, mekkora számokat tud kezelni.
Ebben  az úgynevezett egész típusú számrendszerek (integer number systems) segítenek neki.

A számítógép számára minden adat bitekből – vagyis 0-kból és 1-ekből – áll.
Ha például 8 bitet kapsz, az azt jelenti, hogy 8 helyed van, és minden helyen vagy 0, vagy 1 állhat.

Mit jelent az, hogy „N biten → 2ⁿ lehetséges érték ábrázolható”?

Minden bit két lehetőséget ad, így az összes kombináció száma:
👉 2 × 2 × 2 × … × 2 (N-szer)
Ez pedig nem más, mint 2ⁿ.

Például:

  • 1 bit → 2 érték (0 vagy 1)

  • 2 bit → 4 érték (00, 01, 10, 11)

  • 3 bit → 8 érték

  • 8 bit → 256 érték (0–255)

  • 16 bit → 65 536 érték

  • 32 bit → 4 294 967 296 érték 🤯

Ezért mondjuk, hogy N biten 2ⁿ lehetséges értéket tudunk ábrázolni. Minél több a bit, annál nagyobb számokat tud a gép kezelni.
Vagyis: több memória = nagyobb szám = boldogabb programozó 😎

A gép nem ismeri a mínuszt...vagy mégis?

Most, hogy érted, hogyan kezeli a gép a pozitív számokat, jöhet a következő kérdés:
👉 hogyan ábrázoljuk a negatívakat?

A számítógép természeténél fogva nem ismeri a „mínuszt” — neki minden csak 0 vagy 1.
Ezért bevezették az előjelbitet (S), ami megmondja, hogy a szám pozitív vagy negatív:

  • Ha S = 0, akkor a szám pozitív

  • Ha S = 1, akkor a szám negatív

 

Anime-stílusú lány holografikus kijelző előtt, ahol a bináris számok nem értik a negatív számot

Mekkora szám fér el a memóriában? (IBM-PC példák)

Most, hogy tudod, hogyan működik az előjelbit, nézzük meg, mit jelent ez a gyakorlatban!
A számítógépek különböző méretű egész típusokat használnak – attól függően, mennyi memóriát szánunk a szám tárolására.

  • short integer (2 byte = 16 bit)

    • 1 bit az előjel, 15 bit az érték

    • Tartomány: –32 768 ≤ V ≤ 32 767

  • integer (4 byte = 32 bit)

    • 1 előjelbit + 31 értékbit

    • Tartomány: kb. –2 × 10⁹ ≤ V ≤ 2 × 10⁹

  • long integer (8 byte = 64 bit)

    • 1 előjelbit + 63 értékbit

    • Tartomány: kb. –9 × 10¹⁸ ≤ V ≤ 9 × 10¹⁸

Ezeket a határokat a 2ⁿ képletből vezethetjük le – ahol az egyik bit mindig az előjelre megy el.
Tehát az előjeles számoknál a tartomány kicsit szűkül: ➡️ –2ⁿ⁻¹ … 2ⁿ⁻¹ – 1

Anime-stílusú illusztráció, amely bemutatja a short, integer és long típusok bitfelépítését és tartományait

Egy kis tudomány a bitek mögött

A számítógép-architektúrában az egész típusú adattípusok a processzor regisztereinek szélességéhez igazodnak.
Például az első IBM-PC-k 16 bites Intel 8086 processzort használtak, ezért ott a „short integer” volt az alap típus, hiszen a CPU egyszerre 16 bitet tudott feldolgozni.
Később, a 32 bites (Intel 80386) korszakban az „integer” vált alapértelmezetté, majd a modern 64 bites processzoroknál a „long integer” lett a természetes egység.
Ezért ma, ha egy változót deklarálsz, a gép valójában a hardver korlátaihoz igazítja a méretét.

⚙️ Miért pont 2ⁿ⁻¹ … 2ⁿ⁻¹ − 1?

Az előjeles egész számok tartománya nem véletlenül ilyen furcsa.
Azért aszimmetrikus (pl. –32 768 → 32 767), mert a legfelső bit az előjelet hordozza, és a 0-t csak egyszer lehet kódolni.
Matematikailag a 2’s komplement rendszer a leghatékonyabb, mert:

  • egyetlen hardveres összeadómű elegendő mind összeadásra és kivonásra,

  • a „+0” és „–0” azonos bitmintát kap (így nincs duplikáció),

  • és a legfelső bit automatikusan jelzi a túlcsordulást.

Ez a rendszer annyira logikus, hogy ma minden modern processzor (Intel, AMD, ARM, M1, stb.) ezt használja a negatív számok tárolására.

Érdekesség: a túlcsordulás és a bitvihar

Ha egy szám túlcsordul, azaz túllépi a tárolható tartományt, a gép visszapörgeti a biteket.
Ezt hívjuk overflow-nak.
Például egy 16 bites előjeles számnál: 32767 + 1 -> -32768
Az ember ilyenkor hibát várna, de a processzor „körbeéri” a tartományt — ezért hívják ezt a jelenséget wrap-around-nak.
A szoftverfejlesztők emiatt szoktak külön túlcsordulás-ellenőrzést (overflow check) beépíteni, főleg pénzügyi vagy tudományos számításoknál.

     

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

    Legkisebb és legnagyobb decimális érték

    Legkisebb és legnagyobb decimális érték

    Ebben a leckében megtanuljuk, mit jelent egy számrendszerben a legkisebb és legnagyobb decimális érték. Megnézzük, hogyan lehet kiszámolni, meddig terjedhetnek a számok egy adott alapú rendszerben. Közben kiderül, hogy minden rendszernek megvannak a határai, de a...

    bővebben
    Helyiérték

    Helyiérték

    Nem elég tudni, hogy valahol egy egyes, kettes vagy hármas szám szerepel, azt is kell tudni, hogy hol van az a számjegy és mennyit ér ott.  Ebben a leckében megmutatjuk, hogyan lesz a tizedesvesszőn innen és túl minden szám mögött logika és szabály.  Ne aggódj, nem...

    bővebben
    Endinaitás

    Endinaitás

    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...

    bővebben