真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

C語言中怎么存儲(chǔ)浮點(diǎn)數(shù)

這篇文章給大家介紹C語言中怎么存儲(chǔ)浮點(diǎn)數(shù),內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),尼元陽(yáng)企業(yè)網(wǎng)站建設(shè),尼元陽(yáng)品牌網(wǎng)站建設(shè),網(wǎng)站定制,尼元陽(yáng)網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,尼元陽(yáng)網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

C語言中,有兩種類型的浮點(diǎn)數(shù):32位的float和64位的double,而在計(jì)算機(jī)中存儲(chǔ)的是用二進(jìn)制的科學(xué)計(jì)數(shù)法(即基數(shù)為2)表示的值

例如100=1100100B=1.1001B*26,123.456=1111011.0111010010111100011010100111111011111001110111B=1.1110110111010010111100011010100111111011111001110111B*26

C語言中怎么存儲(chǔ)浮點(diǎn)數(shù)

既然基數(shù)固定為2,尾數(shù)的整數(shù)部分固定為1,那存儲(chǔ)時(shí)就可以省略掉它倆了,只需要存儲(chǔ)另外三個(gè)信息:  正負(fù)符號(hào)+指數(shù)+尾數(shù)的小數(shù)部分

float:符號(hào)占1位,指數(shù)占8位,尾數(shù)小數(shù)占23位;

double:符號(hào)占1位,指數(shù)占11位,尾數(shù)小數(shù)占52位

不過指數(shù)也有正負(fù),因此存儲(chǔ)時(shí)加個(gè)偏移來表示。  float用8位表示指數(shù),偏移就是127;  double用的是11位,那偏移就是1023
看看123.456用float是如何存儲(chǔ)的:  因?yàn)槭钦龜?shù),符號(hào)位用0;指數(shù)是6,加上偏移127后,133=10000101B;尾數(shù)的小數(shù)部分的前23位是  1110110111010010111100  1  (第24位是1,因此需要進(jìn)位),拼接成32位數(shù)就是0  10000101  11101101110100101111001  B=1123477881

C語言中怎么存儲(chǔ)浮點(diǎn)數(shù)

再看一個(gè)純小數(shù)的存儲(chǔ),例如0.00123456,這次倒著推導(dǎo)一下

計(jì)算機(jī)中存儲(chǔ)的是983683318,轉(zhuǎn)換為二進(jìn)制就是0  01110101  01000011101000011110110  B。其中第一個(gè)0表示正值;挨著的8位01110101B=117,表示指數(shù)為(117-127)=-10;最后的23位表示尾數(shù)的小數(shù)部分,前面加上整數(shù)部分的1,再左移23位之后就是1  01000011101000011110110  B=10604790。那么原值就是10604790右移23位,再左移-10位,即10604790右移33位。而233=8589934592。所以原值就是10604790/8589934592=  0.0012345600  407571,可見前10位小數(shù)都是正確的,精度還可以

C語言中怎么存儲(chǔ)浮點(diǎn)數(shù)

最后試個(gè)double的123.456

C語言中怎么存儲(chǔ)浮點(diǎn)數(shù)

二進(jìn)制就是:0  10000000101  11101101110100101111,00011010100111111011111001110111  B。其中第一個(gè)0表示正值;指數(shù)位是10000000101B=1029,表示指數(shù)為(1029-1023)=6;最后是52位尾數(shù),前面加上整數(shù)部分的1,再左移52位之后,1  1110110111010010111100011010100111111011111001110111  B=8687443681197687。因此,原值就是8687443681197687右移52位,再左移6位,即右移46位,而246=70368744177664。

8687443681197687/70368744177664=123.456

C語言中怎么存儲(chǔ)浮點(diǎn)數(shù)

關(guān)于C語言中怎么存儲(chǔ)浮點(diǎn)數(shù)就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。


本文標(biāo)題:C語言中怎么存儲(chǔ)浮點(diǎn)數(shù)
分享URL:http://weahome.cn/article/pdicsj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部