關於浮點數存儲格式標准


浮點數存儲標准為:IEEE754。

一、定義:什么是IEEE754

浮點數在C/C++中對應float和double類型,我們有必要知道浮點數在計算機中實際存儲的內容。IEEE754標准中規定float單精度浮點數在機器中表示用 1 位表示數字的符號,用 8 位來表示指數,用23 位來表示尾數,即小數部分。

對於double雙精度浮點數,用 1 位表示符號,用 11 位表示指數,52 位表示尾數,其中指數域稱為階碼。

IEEE754規定:單精度浮點數字長32位,尾數長度23,指數長度8,指數偏移量127;

雙精度浮點數字長64位,尾數長度52,指數長度11,指數偏移量1023;約定小數點左邊隱含有一位,通常這位數是1,所以上述單精度尾數長度實際為24(默認省略小數點左邊的1則為23),雙精度尾數長度實際為53(默認省略小數點左邊的1則問53);

下面講述使用IEEE754標准表示浮點數:176.0625表示為單精度浮點數:

解:1).先將176.0625轉換為二進制數小數點前:

176 / 2 = 88  余數為 0

88 / 2=44 余數為 0                            

44 / 2 =22 余數為 0                      

22 / 2= 11 余數為 0                             

11 / 2 =5   余數為 1       

5 / 2=2 余數為 1                            

2/ 2  =1 余數為 0                                                                            

1/ 2=0        余數為 1    商為0,結束。                                                                      

小數點前整數轉換為二進制:10110000                                            

小數點后:小數部分乘以2,取整數部分,直至乘積小數部分為0  

0.0625 * 2 = 0.125   整數為0                

0.125 * 2 = 0.25     整數為0            

0.25* 2 = 0.50       整數為0            

0.5* 2 = 1.0 整數為1,小數部分為0,

結束小數點后的小數位轉換為二進制:0001     

故176.0625轉換為二進制為:10110000.00012).

IEEE754約定小數點左邊隱含有一位,通常這位數是1,所以10110000.0001=1.01100000001 *  2^7(小數點向左偏移7位);

IEEE754約定單精度指數偏移量為127,所以176.0625使用IEEE754標准表示時,指數偏移量為 7+127=134 ,即:10000110

IEEE754約定單精度尾數長度為23,所以176.0625使用IEEE754標准表示時,尾數為:01100000001000000000000176.0625>0,即為整數,所以符號位為0

由上得出:176.0625使用IEEE754規格化后的表示為:0  10000110 01100000001000000000000


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM