====== 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)