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




