====== A bináris számábrázolás ======
===== Természetes számok ábrázolása =====
A természetes számok ábrázolása egyszerűen a szám kettes számrendszerbeli alakjával történik. Ezt a kódot szokás a szám **természetes kód**jának is nevezni.
===== Egész számok ábrázolása =====
==== Egyenes vagy abszolútértékes kód ====
Ebben az ábrázolási módban egy előjel bit után (1 - negatív, 0 - nem negytív)
a szám abszolút értékének kettes számrendszerbeli alakját ábrázoljuk
(n-1 biten, ezek a "helyiérték bitek").
Másképp fogalmazva n bites ábrázolás esetén a negatív A értékek kódja a
2^{n-1}-A pozitív szám természetes kódja lesz.
Például:
* 13 right 00001101
* -13 right 10001101
Hátrány: Van "negatív zérus" (10000000).
Adattároláshoz kényelmes, műveletvégzéshez kevésbé alkalmas forma.
==== Negációs vagy 1-es komplemens kód ====
Negatív szám kódja itt a szám abszolútértékének negáltja (azaz minden bitet az
ellenkezőjére változtatunk).
Másképp fogalmazva n bites ábrázolás esetén a negatív A értékek kódja a
2^{n}-1+A pozitív szám természetes kódja lesz.
A nem negatív számok kódja itt is a természetes kód, azaz az egyszerű kettes
számrendszer szerinti alak.
Például:
* 13 right 00001101
* -13 right 11110010
Az első bit itt is előjel bit-ként funkcionál.
Itt is van "negatív zérus" (11111111).
==== Komplemens vagy 2-es komplemens kód ====
Negatív szám kódja itt a szám abszolútértékének komplemense (azaz minden bitet az
ellenkezőjére változtatunk, majd a számhoz hozzáadunk egyet).
Másképp fogalmazva n bites ábrázolás esetén a negatív A értékek kódja a
2^{n}+A pozitív szám természetes kódja lesz.
A nem negatív számok kódja itt is a természetes kód, azaz az egyszerű kettes
számrendszer szerinti alak.
Például:
* 13 right 00001101
* -13 right 11110011
Így nincs "negatív zérus", minden kód különböző számot jelöl.
Könnyű a műveletvégzés (Például: A+(-A)=0).
==== Többletes kód ====
Szokás 2^{n-1} többletű kódnak is nevezni.
Itt egyszerűen a legkisebb számot jelöli a 00000000, a következőt a 00000001, és
így tovább...
Másképp fogalmazva n bites ábrázolás esetén az A értékek kódja a
2^{n-1}+A nemnegatív szám természetes kódja lesz.
Például:
* 13 right 13+2^{7}=13+128=241 right 11110001
* -13 right -13+2^{7}=-13+128=115 right 01110011
Így sincs "negatív zérus", és könnyebb a számok összehasonlítása (a relációk
megfelelnek a pozitív egészeknél alkalmazottakkal), másrészt a negatív számok
eslő esetén az első bit 0, nem negatív számok esetén az első bit 1.
===== Törtszámok ábrázolása =====
==== Előjeles fixpontos ábrázolás ====
Az előzőekben leírt előjeles egész számábrázolási módok egyikét használjuk,
egy rögzített p "pozícionáló tényezővel', mely az egész kódhoz viszonyítva
adja meg a helyiértékek eltolódását.
Ez azt jelenti, hogy az egész szám helyett annak 2^{-p} szeresét értjük.
Például:
* komplemens kódot használva, p=3 esetén 11110011 right -13*2^{-3}=-13/8
===== Valós számok ábrázolása =====
==== Lebegőpontos ábrázolás ====
A számot A=m*2^{c} alakban írjuk fel, ahol m a mantissza, c a karakterisztika,
mindkettő fixpontos ábrázolású, általában a mantissza komplemens, a
karakterisztika többletes kódú, 1/2, c=delim{[}{log{A}}{]}+1.
(Legtöbbször 4+2 byte)