Zobrazenie čísel v počítači
Zo stránky SensorWiki
- Záporné čísla
- Racionálne čísla
- Reálne čísla
- Strojové epsilon
- Počítačová nula
Zobrazenie v pevnej rádovej čiarke
Číslo v pevnej rádovej čiarke zapisujeme ako postupnosť dvojkových číslic, pričom prvý bit spravidla určuje znamienko a ostatné sú platné číslice reprezentovaného čísla. Umiestnenie desatinnej čiarky (vzhľadom na to, že ide o číslo kódované v pevnej rádovej čiarke) je vopred určené a nemenné. Zvyčajne sa umiestňuje medzi prvý (znamienkový) a druhý bit.
Pevné miesto rádovej čiarky má tú výhodu, že ju možno zo zobrazenia vynechať. Z toho dôvodu má číslo napríklad 11010101 číselne vyjadrenie –0,1010101, pričom znak mínus predstavuje jednotka na prvom mieste a desatinnú časť číslice od druhej pozície.
Prevod desatinného dvojkového čísla na desiatkové:
1101012 = 1 × 2-1 + 1 × 2-2 + 0×2-3 + 1×2-4 + 0×2-5 + 1×2-6 = = 0,5 + 0,25 + 0 + 0,0625 + 0 + 0,015625 = 0,82812510
Obmedzený počet bitov určuje, že v počítači nemôžeme zobraziť číslo s ľubovoľnou presnosťou. Najmenšie kladné zobraziteľné číslo je číslo obsahujúce samé nuly, okrem poslednej pozície, ktorá je 1 (0000...001). Čísla menšie ako minimálne zobraziteľné označujeme ako strojovú nulu – nedokážeme ich vyjadriť a počítame s nimi ako s hodnotou 0. Pri zobrazovaní čísel, ktorých desatinná časť tvorí viac ako vyhradený počet číslic, sa zanedbávajú najnižšie rády čísla a tým je obmedzená presnosť výpočtu.
Prevod desatinnej časti dekadického čísla do sústavy so základom :
Metóda je založená na postupnom násobení desatinnej časti dekadického číslom .
kde: a je celé číslo.
kde: je celé číslo a
kde: je celé číslo a , atď.
Príklady:
Pr.:1. Preveďme číslo do osmičkovej sústavy:
Pr.:2. Preveďme číslo do dvojkovej sústavy:
Pr.:3. Preveďme číslo do dvojkovej sústavy:
Číslo sa nedá vyjadriť konečným počtom binárnych číslic !!
Zobrazenie v pohyblivej rádovej čiarke
Je to vhodný spôsob reprezentácie čísel, ktoré sú na vyjadrenie v pevnej rádovej čiarke príliš malé, alebo príliš veľké. Čísla sa ukladá ako určité množstvo platných číslic vynásobený exponentom. Základom exponentu býva väčšinou 2, 10 alebo 16. Čísla, ktoré vieme v pohyblivej rádovej čiarke vyjadriť presne, sú zapísané v tvare:
platné číslice × základexponent
Postupne sa časom používalo niekoľko rôznych systémov reprezentácie čísel v počítaťi, ale napokon takmer všetci používajú reprezentáciu definovanu v norme IEEE 754.
Na cvičení nebudeme pracovať s pomerne komplikovaným systémom IEEE 754 ale pre porozumenie si spravíme svoj vlastný, menej
presný.
Úloha:
Najprv vypočítajte a potom nakreslite všetky prvky počítačovej množiny s pohyblivou rádovou čiarkou F(2,2,-4,3). Nakreslite celú množinu a potom ešte zvlášť interval <-1,1>. V tejto úlohe odovzdávate cvičiacemu dva obrázky!
Definícia: F(2,n,Emin,Emax) znamená, že čísla sú v dvojkovej sústave, mantisa má dĺžku n bitov a rozsah exponentov je od Emin po Emax. Mantisa je normalizovaná s jednotkou pred desatinnou čiarkou.
Ako je to teda s mantisou a exponentom?
Ako je to v úlohe 1.4
Prvý bit (pozri obr.) je znamienko mantisy. 0 je plus a 1 mínus.
<IMG Src="./images/float2.gif" Width=417 Height=99 Alt="">
Mantisa je v normalizovaná, t.j. v tvare 1,mmmmmmm teda hodnoty mantisy budú z binárnych intervalov <-1.11,-1.00>2 a <1.00,1.11>2, t.j. <-1.75,-1.00>10 a <1.00,1.75>10. Nezabudnite, že prvá 1 sa do počítača neukladá, ušetrí sa tak bit.
Exponent je v rozsahnu <-4,3>, viac na vyriešenie úlohy nepotrebujete vedieť. Ak vás zaujíma ako je to zakódované, potom na rozsah <-4,3> potrebujeme tri bity. Exponent nie je v doplnkovom kóde, ale je posunutý. Najlepšie asi ozrejmí nasledovná tabuľka.
kód číslo exponent 000 0 -4 001 1 -3 010 2 -2 011 3 -1 100 4 0 101 5 1 110 6 2 111 7 3
Ako vidno, v takomto zápise čísel v pohyblivej rádovej čiarke nám chýba NULA. Preto sa treba dohodnúť, ktoré číslo bude reprezentovať nulu. Pre riešenie našej úlohy nulu nepotrebujeme. Ak by sme napodobnili formát IEEE 754, potom ak exponent je nula, tak toto číslo sa nazýva nula. Ak je exponent zo samých jednotiek, potom je to buď plus, alebo mínus nekonečno, prípadne symbol NaN (Not A Number - nie je číslo).
Ako je to naozaj vo formáte IEEE 754
Mantisa je v IEEE formáte reprezentovaná v tvare znamienko (signum) a číslo (magnitude). Navyše sa predpokladá, že mantisa je vždy normalizovaná v tvare 1.mmmmm... Tá jednotka je tam vždy, preto ju ani neukladáme do pamäti. Rozsah hodnôt mantisy sa pohybuje v intervaloch (-2,-1> a <1,2).
Exponenty sa vo formáte IEEE 754 vyjadrujú v tzv. posunutej (biased) podobe, takže od binárnej reprezentácie exponentu sa odpočíta konštanta (bias, offset) 127 (resp. 1023 pre 64 bitov double).
Výhoda posunutého exponentu je, že samé nuly sú najmenší exponent a takéto číslo je vybraté za symbol NULA. Aj druhý hraničný exponent (samé jednotky) má v IEEE 754 formáte špeciálny význam -- takéto číslo je buď kladné, alebo záporné nekonečno, prípadne tzv. NaN (Not a Number). Tieto špeciálne čísla sú popísané podrobne v tabuľke na konci <A HREF="http://babbage.cs.qc.edu/courses/cs341/IEEE-754references.html">tohoto článku</A>.