C語(yǔ)言浮點(diǎn)數(shù)和存儲(chǔ)

浮點(diǎn)數(shù)內(nèi)存存儲(chǔ)結(jié)構(gòu):科學(xué)計(jì)數(shù)法

科學(xué)計(jì)數(shù)法表示實(shí)數(shù):

??? 十進(jìn)制12345 = 1.2345*10^4

??? 二進(jìn)制

?????? 1011.01 = 1.01101*2^3 1.01101為尾數(shù) 3為指數(shù) 0為符號(hào)位

?????? -0.010101 = -1.0101*2^-2 1.0101為尾數(shù) -2為指數(shù) 1為符號(hào)位

在IEEE標(biāo)準(zhǔn)中,浮點(diǎn)數(shù)是將特定長(zhǎng)度的連續(xù)字節(jié)(4個(gè)字節(jié)或者8個(gè)字節(jié))的所有二進(jìn)制位(32位和64位)分割為特定寬度的三個(gè)域。

符號(hào)數(shù)S 占1位 正數(shù)位0 負(fù)數(shù)為1

階碼域E 占8位或者11位E=e+127(float)或者E+1023(double) 指數(shù)e有正負(fù)既有符號(hào)數(shù),但階碼為正既無(wú)符號(hào)數(shù),所以將e加個(gè)127或者1023作為偏移,方便指數(shù)的比較。

尾數(shù)域M 占23位或者52位,1.01101但整數(shù)部分的1是默認(rèn)的,可以不用存儲(chǔ),計(jì)算浮點(diǎn)數(shù)的存儲(chǔ)方式,只需要依次求出1位的符號(hào)位,8位或11位的階碼,以及23位或者52位的尾數(shù)即可。


存儲(chǔ)結(jié)構(gòu)


給出一個(gè)浮點(diǎn)數(shù) 計(jì)算對(duì)應(yīng)的二進(jìn)制

比如給定一個(gè)浮點(diǎn)數(shù)7.25如何計(jì)算它對(duì)應(yīng)的單精度和雙精度的二進(jìn)制呢?

1、 十進(jìn)制浮點(diǎn)數(shù)7.25對(duì)應(yīng)的二進(jìn)制:111.01

2、 用二進(jìn)制的科學(xué)計(jì)數(shù)法1.1101*2^2

3、 按照浮點(diǎn)數(shù)的存儲(chǔ)結(jié)構(gòu),得出符號(hào)位為0 表示正數(shù)

4 、階碼(指數(shù)+127/1023)E單精度為?2+127 雙精度2+1023

5 、小數(shù)部分M為1001(單精度23位 雙精度52位余下的0補(bǔ)0 即單精度補(bǔ)19個(gè)0 雙精度補(bǔ)48個(gè)0)

6 、7.25的單精度和雙精度表示為

單精度0 10000001 1101 0000000000000000000

雙精度0 10000001 1101 000000000000000000000000000000000000000000000000

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容