Posted By: Neuromancer (... bright eyes ...) on 'CZprogram'
Title:     Re: Zaokrouhlovani cisla typu Extended
Date:      Fri May 10 19:53:13 2002


> Normalizovany cislo vypada 'mantisa * 2^exponent'
> 
> Je to z ciste matematickych duvodu (desitkova soustava je pro pocitani dost 
> nevhodna :o) [tedy vsimni si, neni tu nic o m*10^exp)
> 
> Napises li tedy 5, nebude to ulozeno jako binarne 0.5 * 10^1 ale jako neco 
> uplne jinyho. __PROTO__ zde vznika urcita nepresnost uz jen vlozenim cisla. 
> Vyjadrim-li se doslova, pak konkretne 5ku FPU _NEDOKAZE_ vyjadrit jako 
> 'absolutni' hodnotu, vzdy se tomu bude 'jen' priblizovat.

Hmm?
takze, vyjadreni 5ky ve floatu
a) prevedeme na binarni cislo. 5ka = 101
b) zkonvertime na desetine binarni cislo
   5ka = 101b = 1.01 * 2^2
c) znormalizujeme, tj. zanedbame uvodni 1cku, mame
   .01 * 2^2
d) exponent se pro float vyjadruje jako posunuti vuci 127 (neni tam tradicni
   znamenko), tedy nas exponent 2 se ulozi jako 129 = 0x81
   mantisa se nam ulozi jako 010.....0b = 0x200000 (mame celkem 23 bitu)

No a kdyz se to posklada vse dohromady dostaneme
0<<31 (sign)  +
0x81 << 23 (exponent) +
0x200000

coz je dohromady 0x40a0 0000

Testovaci programek
float vQ = 5;
DWORD nQ = *reinterpret_cast<DWORD*>(&vQ);

nQ = 0x40a00000

Me to teda pripadne zcela pruhledne...

> A to jeste u normalizovanyho cisla je mantisa mezi 0.5-1.0.

Myslim, ze prevadet to zpet na desetina cisla je ponekud matouci...
Nejmensi mantisa je 1.0000000 (binarne), jenze jak chces binarni mantisu
(vztazenou na 2kovy exponent) prevest na desitkovou mantisu vztazenou
k desitkovemu exponentu?
 
> Je to tedy dost rozdilny od nasich predstav v desitkovy aritmetice.

> Pivson I a posledni, z bozi vule pivar
> 
>     A co budou delat cesi ???
>                                      Deme na pivo !
--------------------------------------------------------------------/
|       ICQ 20529980                               Neuromancer       |
|              Take me far away, where the dragons fly,              |
/------------ leave me to my dreams, or just let me die. ------------

Search the boards