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...
Fixpontos számrendszerek
Információs technológia
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 tizedespont helye,
hogyan határozza meg a számok pontosságát, és miért különböznek a lebegőpontos formátumtól. Lépésről lépésre haladunk, ábrákkal, példákkal – hogy a fixpontos számrendszerek érthetőek legyenek
Mi az a fixpontos számrendszer?
Képzeld el, hogy egy számot szeretnél ábrázolni a számítógépben.
Ehhez a gép bitjeit (0-kat és 1-eket) használja, és a legfontosabb kérdés az, hol legyen a tizedespont.
A fixpontos számrendszerben ez a pont fix helyen van – azaz előre megmondjuk, hány bit tartozik az egész részhez, és hány a törtrészhez.
Innen jön a neve is: fixed-point, vagyis rögzített tizedespontú.
Ez különbözik a lebegőpontos rendszertől, ahol a pont helye változhat (azaz lebeg), és ezért sokkal nagyobb számokat is tudunk ábrázolni – de bonyolultabban.
Műveletek
A fixpontos számrendszerekkel ugyanúgy végezhetünk összeadást és kivonást, mint a sima egész számokkal – hiszen a bitműveletek megegyeznek.
De ha szorzást vagy osztást végzünk, figyelni kell a tizedespont helyére, mert az elmozdulhat.
Ez azért fontos, mert a végeredményben más lehet az egész–tört arány, mint amit eredetileg kijelöltünk.
Ez a képlet az előjeles, bináris fixpontos szám értékét adja meg. Nézzük meg részletesen, mit jelent:
bN−1 -> az utolsó (legmagasabb helyiértékű bit, amit előjelbitnek nevezünk. Ha ez a szám 0, akkor a szám pozitív, ha 1, akkor a szám negatív.
N -> teljes bithossz, azaz hány bitből áll a szám, például 8 vagy 16
p -> a tizedespont helye, azaz hány bit tartozik a törtrészhez
2^i-p -> ez mutatja meg, hogy az adott bit milyen helyiértéket képvisel.
A képlet tehát nem más, mint a szám bináris helyiértékeinek összege – figyelembe véve az előjelet és a tizedespont helyét.
A tizedespontnak nincs szabadsága
Van az a pillanat, amikor a matek kicsit olyan, mint egy makacs rokon: nem szeret változtatni a helyén.
A fixpontos számrendszerek pontosan ilyenek — itt a tizedespont egyszerűen nem mozdul.
Mindig ugyanott van, akkor is, ha a világ összeomlik körülötte.
És bármilyen hihetetlen, ennek a „makacsságnak” komoly technológiai előnyei vannak.
Mit jelent az, hogy „fixpontos”?
A számítógép minden számot bitek sorozataként tárol. Ha ezek egész számok, akkor egyszerű: minden bit egy-egy hatvány a kettes számrendszerben.
De mi van, ha törteket is szeretnénk tárolni? Valahol el kell helyezni a tizedespontot (vagy binárisban: radix point).
A fixpontos számrendszerben ez a pont előre meghatározott helyen van.
Mondjuk például: „a 16 bitből 8 az egész rész, 8 a törtrész”. Innentől kezdve nincs vita: minden számot ebben a formában kell értelmezni. Így néz ki például egy 16 bites fixpontos formátum (p = 8):
S EEEEEEE.FFFFFFFF | | | | | | +---------> 8 bit a törtrész | +---------------> 7 bit az egész rész +-------------------> előjelbit
Miért használják mégis?
Mert gyors.
A számítógép nem kell, hogy újra és újra kiszámolja, hová kell „tennie” a tizedespontot, mint a lebegőpontos műveleteknél.
A fixpontos forma sokkal egyszerűbb logikát igényel – és ez az egyszerűség értékes az olyan eszközöknél, ahol kevés az erőforrás: mikrokontrollerek, DSP-k, jelfeldolgozás, beágyazott rendszerek.
Ráadásul kis tartományban sokkal stabilabb és pontosabb, mint a lebegőpontos számok.
Ha például hangot vagy képet dolgozol fel, nem akarsz lebegő tizedespontokat, csak egy kis, precíz fix skálát.
A lépésköz – a rendszer „felbontása”
A fixpontos számrendszer egyik kulcsfogalma a Δr, azaz a differencia vagy felbontás.
Ez azt mutatja, mennyi a különbség két egymást követő szám között.
Ha p = 8, akkor:
Ez azt jelenti, hogy a legkisebb „ugrás” a számok között kb. 0,0039.
Olyan ez, mintha a mérleged nem grammokat, hanem csak 4 grammos lépésekben mérne — nem rossz, csak tudni kell, hogy mennyire „durván” mérsz.
Egy konkrét példa
Legyen egy 16 bites fixpontos rendszer, ahol:
-
N = 16 bit
-
p = 8 bit (törtrész)
-
előjeles (2’s complement) formátumot használunk
Ez azt jelenti: 1 bit az előjelre, 7 bit az egész részre, 8 bit a törtrészre jut.
| Jelölés | Bináris alak | Érték | Magyarázat |
|---|---|---|---|
| V(zéró) | 00000000.00000000 |
0.0 | a nullapont |
| V(legkisebb pozitív) | 00000000.00000001 |
1/256 = 0.00390625 | a legapróbb pozitív érték |
| V(legnagyobb pozitív) | 01111111.11111111 |
128 − 1/256 = 127.99609375 | az utolsó pozitív szám a tartományban |
| V(legkisebb negatív) | 10000000.00000000 |
−128 | a legnagyobb negatív érték |
| V(legnagyobb negatív) | 11111111.11111111 |
−1/256 = −0.00390625 | a nullához legközelebbi negatív érték |
Miért nem szimmetrikus a tartomány?
Ha ránézel a számokra, rögtön feltűnik, hogy a tartomány −128 és +127.996 között van.
És felmerül a kérdés:
„Miért nem −128 és +128?”
Teljesen jogos.
A válasz az előjelbit.
A fixpontos, előjeles bináris számok kétkomplementes formában működnek.
Ez azt jelenti, hogy az első (bal szélső) bit nem számértéket, hanem előjelet jelöl:
-
0 → pozitív szám,
-
1 → negatív szám.
Ettől viszont a tartomány egy kicsit félrebillen.
A pozitív oldalon az egyik kombináció (amikor minden bit 1 lenne) „átcsúszna” a negatív tartományba, ezért onnan egy szám hiányzik.
💬 Összefoglalva:
A legnagyobb negatív szám (−128) teljes egészében lefedett,
a legnagyobb pozitív pedig egy hajszállal kisebb (+127.996).
Nem hiba – ez a kétkomplementes kódolás természetes velejárója.
A tizedespont helye – miért „fix”?
Ez az egész történet lényege.
A „pont” nem egy tényleges karakter, nem tárolódik a memóriában.
A számítógép nem jegyzi meg, hova tettük a pontot – csak tudja, hogy hol kell képzeletben lennie.
Ha például azt mondjuk:
„Ez egy 16 bites fixpontos szám, amiben 8 bit a törtrész”,
akkor a gép automatikusan úgy értelmezi, hogy a tizedespont 8 bit után van a jobbról számolva.
Ez a fixpontos rendszerek legfontosabb szabálya:
a pont nem mozdulhat, mert ez az egész ábrázolás stabilitását adja.
💬 Gyakorlati példa:
Ha ugyanazt a 16 bitet másként értelmezed (mondjuk 4 bit törtrész, 12 egész), akkor a szám teljesen más értéket adna.
Ezért fix, mert a program és a hardver közösen megegyeznek a helyéről.
Pontosság vs. tartomány – az örök csereüzlet
Minél több bitet adsz a törtrészhez, annál pontosabban tudod kifejezni a számokat —
de közben kevesebb hely marad az egész részre.
Ha kevesebb bit a törtrész, akkor nagyobb számokat tudsz ábrázolni, de kevésbé részletesen.
Ez egy kompromisszum, amit minden mérnöknek meg kell kötni.
Olyan ez, mint a fényképeknél a felbontás:
ha túl nagyra nagyítasz, elveszik a részlet;
ha túl kicsire méretezel, minden pixeles lesz.
Példa:
-
p = 8 → 1/256-os pontosság, tartomány kb. −128…+127.996
-
p = 4 → 1/16-os pontosság, tartomány kb. −2048…+2047.9375
💬 Vagyis:
A pontosság mindig az ár, amit a nagyobb tartományért fizetsz.
Miért nem használ mindenki lebegőpontos számokat?
Jogos kérdés.
A lebegőpontos számok sokkal „rugalmasabbak” – a tizedespont helye változhat, így hatalmas tartományt fedhetnek le.
A kérdés viszont: mindenáron kell az a rugalmasság?
A válasz legtöbbször: nem.
A fixpontos számrendszereknek két hatalmas előnyük van:
Sebesség.
Egy mikrokontroller, ami például egy robotkart irányít, nem akar lebegőpontos számokat tologatni.
Az drága művelet, sok energiát és időt igényel.
A fixpont viszont azonnal működik, mert egyszerű egész műveleteket végez.
Kiszámíthatóság.
A fixpontos műveletek mindig ugyanazt az eredményt adják, nincs „kerekítési meglepetés”, mint a lebegőpontos világban.
Ha szeretnéd folytatni a tanulást, itt válogathatsz az információs technológia anyagok között
Fixpontos számrendszerek
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...








