float的浮點(diǎn)表示法

float的浮點(diǎn)表示法

ID:41484133

大?。?2.00 KB

頁(yè)數(shù):8頁(yè)

時(shí)間:2019-08-25

float的浮點(diǎn)表示法_第1頁(yè)
float的浮點(diǎn)表示法_第2頁(yè)
float的浮點(diǎn)表示法_第3頁(yè)
float的浮點(diǎn)表示法_第4頁(yè)
float的浮點(diǎn)表示法_第5頁(yè)
資源描述:

《float的浮點(diǎn)表示法》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。

1、ITjob就業(yè)培訓(xùn),九年一劍,100%就業(yè)率打造IT培訓(xùn)行業(yè)第一品牌浮點(diǎn)表示法此教程為ITjob軟件開發(fā)教程網(wǎng)提供,特此分享,互相學(xué)習(xí)!float共計(jì)32位(4字節(jié))由最高到最低位分別是第31、30、29、......、0位31位是符號(hào)位,1表示該數(shù)為負(fù),0反之30~23位,一共8位是指數(shù)位(-128~127)22~0位,一共23位是尾數(shù)位每8位分為一組,分成4組,分別是A組、B組、C組、D組每一組是一個(gè)字節(jié),在內(nèi)存中逆序存儲(chǔ),即:DCBA??3130???2322???????????????????0??

2、-

3、--------

4、---------------------

5、--

6、??

7、

8、???????

9、??????????????????????

10、??

11、-

12、--------

13、----------------------

14、注:尾數(shù)的存儲(chǔ)位為23位,由于沒有存儲(chǔ)最高位的1,所以實(shí)際有效位為24位。如果其中20位都用來(lái)表示小數(shù)部分,能表示的最大值為0.999999???我們先不考慮逆序存儲(chǔ)的問(wèn)題,因?yàn)槟菢訒?huì)把讀者徹底搞暈,所以我先按照順序的來(lái)講,最后再把他們翻過(guò)來(lái)就行了。純整數(shù)的表示方法-------------------------------------------------???現(xiàn)在讓我們按照IEEE浮點(diǎn)數(shù)表示法,一步步的將float型浮

15、點(diǎn)數(shù)123456.0ITjob就業(yè)培訓(xùn),九年一劍,100%就業(yè)率打造IT培訓(xùn)行業(yè)第一品牌ITjob就業(yè)培訓(xùn),九年一劍,100%就業(yè)率打造IT培訓(xùn)行業(yè)第一品牌f轉(zhuǎn)換為十六進(jìn)制代碼。在處理這種不帶小數(shù)的浮點(diǎn)數(shù)時(shí),直接將整數(shù)部123456轉(zhuǎn)化為二進(jìn)制表示:11110001001000000也可以這樣表示:11110001001000000.然后將小數(shù)點(diǎn)向左移,一直移到離最高位只有1位:1.1110001001000000一共移動(dòng)了16位,在布爾運(yùn)算中小數(shù)點(diǎn)每向左移一位就等于在以2為底的科學(xué)計(jì)算法表示中指數(shù)+1,所以原數(shù)就等于這樣11110001001000000=1.111000

16、1001000000*(2^16)現(xiàn)在我們要的尾數(shù)和指數(shù)都出來(lái)了。顯而易見,最高位永遠(yuǎn)是1,因?yàn)槟悴豢赡馨奄I了16個(gè)雞蛋說(shuō)成是買了0016個(gè)雞蛋吧?(呵呵,可別拿你買的臭雞蛋甩我),所以這個(gè)1我們還有必要保留他嗎?(眾:沒有!)好的,我們刪掉他。這樣尾數(shù)的二進(jìn)制就變成了:1110001001000000最后在尾數(shù)的后面補(bǔ)0,一直到補(bǔ)夠23位:11100010010000000000000(MD,這些個(gè)0差點(diǎn)沒把我數(shù)的背過(guò)氣去)???再回來(lái)看指數(shù)位30~23位,一共8位,可以表示范圍是0~255的無(wú)符號(hào)整數(shù),也可以表示-128~127的有符號(hào)整數(shù)。但因?yàn)橹笖?shù)是可以為負(fù)的,所以

17、為了統(tǒng)一把十進(jìn)制的整數(shù)化為二進(jìn)制時(shí),都先加上127。???在這里,我們的16加上127后就變成了143,二進(jìn)制表示為:10001111123456.0f這個(gè)數(shù)是正的,所以符號(hào)位是0,那么我們按照前面講的格式把它拼起來(lái):ITjob就業(yè)培訓(xùn),九年一劍,100%就業(yè)率打造IT培訓(xùn)行業(yè)第一品牌ITjob就業(yè)培訓(xùn),九年一劍,100%就業(yè)率打造IT培訓(xùn)行業(yè)第一品牌0100011111110001001000000000000001000111111100010010000000000000再轉(zhuǎn)化為16進(jìn)制為:47F12000,最后把它翻過(guò)來(lái),就成了:0020F147輸出4個(gè)字節(jié)的浮點(diǎn)數(shù)

18、內(nèi)存數(shù)據(jù)-------------------------------------------------#includeintmain(){floatf=123456.0;unsignedchar*c=(unsignedchar*)&f;for(inti=3;i>=0;i--){printf("%p",c[i]);}}0x470xf10x20(nil)整數(shù)和小數(shù)混合的表示方法-------------------------------------------------???有了上面的基礎(chǔ)后,下面我再舉一個(gè)帶小數(shù)的例子來(lái)看一下為什么會(huì)出現(xiàn)精度問(wèn)題。

19、???按照IEEE浮點(diǎn)數(shù)表示法,將float型浮點(diǎn)數(shù)123.456f轉(zhuǎn)換為十六進(jìn)制代碼。對(duì)于這種帶小數(shù)的就需要把整數(shù)部和小數(shù)部分開處理。整數(shù)部直接化二進(jìn)制:ITjob就業(yè)培訓(xùn),九年一劍,100%就業(yè)率打造IT培訓(xùn)行業(yè)第一品牌ITjob就業(yè)培訓(xùn),九年一劍,100%就業(yè)率打造IT培訓(xùn)行業(yè)第一品牌1111011。小數(shù)部的處理比較麻煩一些,也不太好講,可能反著講效果好一點(diǎn),比如有一個(gè)十進(jìn)制純小數(shù)0.57826,那么5是十分位,位階是1/10;7是百分位,位階是1/100;8是千分位,位階是1/1000...,這些位階分母的

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。