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

    Adatábrázolás számítógépen

    Adatábrázolás számítógépen

    Amikor megnyitunk egy képet, elindítunk egy játékot vagy egyszerűen csak lementünk egy dokumentumot, ritkán gondolunk bele, hogyan tárolja a számítógép az adatokat. Pedig minden, amit a gép „tud”, az valójában nullák és egyesek végtelen sora. Ez a folyamat az, amit...

    bővebben
    Hexadecimális számrendszer

    Hexadecimális számrendszer

    Tudtad, hogy a számítógépek nem csak kettes számrendszerben gondolkodnak? A bináris az alap, de ha igazán gyorsan és átláthatóan szeretnénk leírni a biteket, akkor jön a képbe a hexadecimális számrendszer, vagyis a tizenhatos alapú világ.Ebben a rendszerben nem csak a...

    bővebben
    Bináris kivonás

    Bináris kivonás

    A bináris kivonás elsőre bonyolultnak tűnhet, de valójában ugyanaz az elv, mint a tízes számrendszerben – csak itt 0 és 1 állnak rendelkezésre. Ha az adott oszlopban a kisebbítendő számjegy kisebb, mint amit levonunk, „kölcsön kell kérnünk” a következő helyiértékről –...

    bővebben