浮點(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ù)即可。

給出一個(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