柚子快報(bào)邀請(qǐng)碼778899分享:c語(yǔ)言 浮點(diǎn)數(shù)在內(nèi)存中的存儲(chǔ)
柚子快報(bào)邀請(qǐng)碼778899分享:c語(yǔ)言 浮點(diǎn)數(shù)在內(nèi)存中的存儲(chǔ)
??根據(jù)國(guó)際標(biāo)準(zhǔn)IEEE(電?和電??程協(xié)會(huì))754,任意?個(gè)?進(jìn)制浮點(diǎn)數(shù)V可以表?成下?的形式:V ??= ?(?1) ^S*?M ? 2^E? ? (?1)S 表?符號(hào)位,當(dāng)S=0,V為正數(shù);當(dāng)S=1,V為負(fù)數(shù) ? M表?有效數(shù)字,M是?于等于1,?于2的 ? 2E 表?指數(shù)位?
列如:5.0(5的二進(jìn)制為101)=1.01*2^2=(-1)^0*1.01*2^2
對(duì)于任意一個(gè)浮點(diǎn)數(shù)我們都可以將其寫類似于科學(xué)計(jì)數(shù)法的方式,只是這里使用的是二進(jìn)制,同時(shí)用-1的0次或者1次來(lái)表示,即都可以寫成IEEE754所規(guī)定的標(biāo)準(zhǔn),其實(shí)計(jì)算機(jī)在進(jìn)行儲(chǔ)存的時(shí)候,就是儲(chǔ)存的S,M,E這三個(gè)數(shù)
對(duì)于32位的浮點(diǎn)數(shù),最?的1位存儲(chǔ)符號(hào)位S,接著的8位存儲(chǔ)指數(shù)E,剩下的23位存儲(chǔ)有效數(shù)字M對(duì)于64位的浮點(diǎn)數(shù),最?的1位存儲(chǔ)符號(hào)位S,接著的11位存儲(chǔ)指數(shù)E,剩下的52位存儲(chǔ)有效數(shù)字M
計(jì)算機(jī)對(duì)于M的存儲(chǔ)
由于每一個(gè)M都有一個(gè)1,所以計(jì)算機(jī)就可以直接儲(chǔ)存M的小數(shù)部分,這樣就避免了浪費(fèi)一個(gè)bit位,多一位來(lái)存儲(chǔ)小數(shù),可以提升精度。
十進(jìn)制小數(shù)轉(zhuǎn)化為二進(jìn)制
對(duì)于小數(shù)點(diǎn)后面的部分,一般的放法是乘2法,即對(duì)于十進(jìn)制的小數(shù)先乘以2,要是有進(jìn)位1,就拿出來(lái),要是沒(méi)有,就拿出來(lái)0,然后繼續(xù)拿出乘以后的小數(shù)點(diǎn)乘以2,這樣一直循環(huán),直到乘出來(lái)數(shù)字沒(méi)有小數(shù)了,按照先后順序排列這些拿出來(lái)的0或者1,即為對(duì)應(yīng)的二進(jìn)制數(shù)列
但對(duì)于一些相對(duì)于簡(jiǎn)單的,我們就可以根據(jù)二進(jìn)制中小數(shù)部分的權(quán)重來(lái)直接寫出,0.11111對(duì)應(yīng)的權(quán)重從左到右分別就是2的負(fù)一次(0.5),2的負(fù)二次(0.25),2的負(fù)三次(0.125).....,我們通過(guò)這些組合就不難看出一些簡(jiǎn)單的小數(shù),列如0.75就是0.5+0.25即二進(jìn)制0.11
同時(shí),對(duì)于一些小數(shù),3.14無(wú)法精確的算出其二進(jìn)制的小數(shù)位,此時(shí)計(jì)算機(jī)就會(huì)儲(chǔ)存一個(gè)非常接近的數(shù)字來(lái)表示它
計(jì)算機(jī)對(duì)于E的儲(chǔ)存
我們知道,在科學(xué)計(jì)數(shù)法中,E既可以是正數(shù),也可以是負(fù)數(shù),那么我們?cè)撛趺磧?chǔ)存呢......
IEEE754于是就規(guī)定,我們?cè)诖鎯?chǔ)的時(shí)候,必須要給E加上一個(gè)中間值,讓E成為一個(gè)正數(shù),對(duì)于8位的E,中間值位127,對(duì)于11位的E,這個(gè)中間值位1023。列如:2^10,E=10,對(duì)于8位E來(lái)說(shuō),儲(chǔ)存的數(shù)字就等于10+127=137。
對(duì)于一些特殊的E
1.E全為1,2的這么多次將是一個(gè)極其大的數(shù)字,計(jì)算機(jī)將認(rèn)為存儲(chǔ)的是一個(gè)無(wú)窮大的數(shù)字
2.E全為0,2的負(fù)這么多次將是一個(gè)非常小的數(shù)字,計(jì)算機(jī)對(duì)于此類數(shù)字E=1-127(1-1023)表示真實(shí)值,同時(shí)M不再加上1,計(jì)算機(jī)用來(lái)表示一個(gè)非常接近于0的數(shù)字,或則是正負(fù)0.
列如???????
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
柚子快報(bào)邀請(qǐng)碼778899分享:c語(yǔ)言 浮點(diǎn)數(shù)在內(nèi)存中的存儲(chǔ)
相關(guān)文章
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。