單精度浮點(diǎn)數(shù):1位符號(hào)位,,8位指數(shù)位,,23位有效數(shù)字。
雙精度浮點(diǎn)數(shù):1位符號(hào)位,,11位指數(shù)位,,52位有效數(shù)字。 計(jì)算規(guī)則:數(shù)字 = 有效數(shù)字*2^指數(shù)*符號(hào) 提問人的追問 2009-10-13 12:59
那個(gè)計(jì)算規(guī)則沒看懂···不知道什么意思···請(qǐng)高手再詳細(xì)一些,!謝謝 回答人的補(bǔ)充 2009-10-13 14:29
舉個(gè)例子:234.0用float類型表示時(shí)使用4字節(jié)保存,,內(nèi)容是 0x436a0000。換成二進(jìn)制表示為01000011011010100000000000000000,,其中符號(hào)為0,,指數(shù)為10000110,有效數(shù)字為11010100000000000000000。指數(shù)換成10進(jìn)制為134,,減去127為7,。有效數(shù)字其實(shí)是小數(shù)部分,加上省略的整數(shù)部分1為1.110101,,將小數(shù)點(diǎn)向右移7位就相當(dāng)于乘以2的指數(shù)次冪,,即11101010,換成10進(jìn)制為234,。查看浮點(diǎn)數(shù)的內(nèi)存表示可以用如下程序看: float a = 234; char c[4]; memcpy(c, a, sizeof(float)); c中的內(nèi)容即是a的內(nèi)存表示,。 提問人的追問 2009-10-13 18:51
大俠,問下,,哪里來(lái)的省略的整數(shù)1啊,? 回答人的補(bǔ)充 2009-10-14 09:07
有效數(shù)字表示法是這樣的:234表示成2.34e2,,其中小數(shù)點(diǎn)前面的是整數(shù)部分,小數(shù)點(diǎn)后面的是小數(shù)部分,,e后面的是指數(shù)部分,。用10進(jìn)制表示時(shí)整數(shù)部分是大于0小于10的數(shù),而用二進(jìn)制表示時(shí)就始終是1,,使用浮點(diǎn)數(shù)表示法時(shí)單精度浮點(diǎn)數(shù)和雙精度浮點(diǎn)數(shù)都省略這個(gè)整數(shù)部分,。浮點(diǎn)數(shù)表示法中的指數(shù)部分是實(shí)際的指數(shù)加上一個(gè)固定的基數(shù),單精度浮點(diǎn)數(shù)這個(gè)基數(shù)是127,,雙精度浮點(diǎn)數(shù)是1023,。詳細(xì)說(shuō)明見 http://www./yingyong/080502/15414593-2.html
|
|