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

    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