Fixpontos számábrázolás

A Wikipédiából, a szabad enciklopédiából
Ugrás a navigációhoz Ugrás a kereséshez

A fixpontos ábrázolási módoknál a törtpont (tizedesvessző, tizedespont, kettedespont stb.) helye rögzített. Többségében egész számok tárolására használják, így a törtpont az ábrázolt szám végén van. Az egy bájton tárolt bináris számírásnak könnyen belátható korlátjai vannak. A számítógépen a fixpontos számokat általában két bájton, vagy négy bájton ábrázolják, azaz egy szám hossza 16 vagy 32 bit. De a negatív számok ábrázolásáról is gondoskodnunk kell. Erre több lehetőség is kínálkozik.

Ábrázolás[szerkesztés]

A számok ábrázolásának két fontos jellemzője van a felhasználás szempontjából:

  • az ábrázolandó számok nagysága
  • az ábrázolás pontossága

A két jellemző az alkalmazott regisztermérettől és bináris pont helyétől függ. Ha a bináris pontot balra toljuk el, akkor

  • a számok ábrázolási tartománya csökken
  • az ábrázolás pontossága nő
  • ha bináris pont a regiszter bal szélén van, akkor a szám fixpontos tört.

Ha pedig a bináris pont jobbra mozdul, akkor

  • a számok ábrázolási tartománya nő
  • az ábrázolás pontossága csökken
  • ha a bináris pont a regiszter jobb szélén van, akkor a szám fixpontos egész.

Előjelbit alkalmazása[szerkesztés]

A szám első bitje felhasználható előjelbitnek. Ennek az értéke azt jelzi, hogy a szám pozitív vagy negatív (a legelterjedtebb értelmezés szerint ha ez a bit 0, akkor a szám pozitív, ha 1, akkor negatív).

Kettes komplementerképzés módszere[szerkesztés]

Fontos szempont, hogy a műveletvégzés minél egyszerűbb legyen, ezért olyan formát célszerűbb választani, ahol a kivonás összeadással helyettesíthető. Ugyanis a szorzás összeadások sorozatára, az osztás pedig kivonások sorozatára vezethető vissza. Ha a kivonást sikerül összeadásra visszavezetni, akkor tulajdonképpen a gépnek csak az összeadás műveletét kell ismernie. A kivonást a túlcsordulási jelenség kihasználásával vezethetjük vissza a számítógépek műveletvégzésénél az összeadásra. A kivonni kívánt szám kettes komplementerét ha hozzáadjuk a kisebbítendőhöz, akkor a túlcsordulás miatt helyes különbséghez jutunk. A kettes komplemens az egyes komplemensnél eggyel nagyobb szám, ahol az egyes komplemens egyszerűen a szám bitenkénti negáltja (amennyiben bináris számról van szó). Egy ábrázolt szám legmagasabb helyi értékű bitje pontosan akkor 1, ha a szám negatív volt (bár nem tárolunk előjelet, ez mégis olyan egyszerűen megállapítható, mint az előjeles ábrázolásnál). A negatív számot úgy kapjuk vissza, hogy a kettes komplemens képzését visszafelé hajtjuk végre, avagy ismét a kettes komplemensét képezzük. Előnye, hogy a kivonást nem kell implementálni, ez egyszerűen negatív szám hozzáadását jelenti. A kettes komplemens előállítása közben túlcsordulás léphet fel, de ekkor a túlcsordult bittel nem foglalkozunk. A kettes komplemens képzése a következő lépésekből áll:

  1. A szám minden egyesének helyére nullát, minden nullájának helyére egyest írunk, így megkapjuk a szám egyes komplementerét.
  2. A kapott egyes komplemenshez hozzáadunk egyet. Így megkapjuk a szám kettes komplemensét.

Túlcsordulás (OVERFLOW) fogalma: Ha a műveleti eredmény nem fér el a változónak fenntartott tárterületen, túlcsordulásról beszélünk.

Feszített előjeles ábrázolás[szerkesztés]

Szokás eltolásos vagy alapértékes ábrázolásként is emlegetni. A negatív számokat is úgy tároljuk, mintha pozitívak lennének. Ezt úgy érjük el, hogy minden ábrázolni kívánt számhoz hozzáadunk egy előre rögzített c konstans értéket. A legkisebb ábrázolható szám −c lehet. Az összeadást elvégezve, így mindenképp nem negatív számot kapunk, melynek ábrázolása már ismertetésre került. Előnye, hogy lebegőpontos számításoknál, ha a kitevőt így tároltuk el, az egyes számjegyek valódi helyi értékei könnyen kiszámíthatók. Az előjel megállapításához azonban vissza kell alakítani a számot.

Források[szerkesztés]

Informatika, 1. rész, Bonifert Zsolt, Műszaki Könyvkiadó, 2001