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. ------------