浮點數


1、構成:

符號位、尾數、基數、指數

 

2、浮點數二進制表示

基數為2,只保留符號位(s)、尾數(m)、指數(e):

 

3、浮點數格式:

單精度、雙精度和擴展精度。

單精度浮點數為32位:

對應於C語言中的float,其中包含一位符號位S,8位指數位E和23位尾數位M,盡管M有23位,但他表示小數點之后的二進制小數,例如M為0110,其實是0.0110,這時因為標准規定小數點左邊還有一個隱含位.(此處有一個點.),從而尾數值可能是0.0110,也可能是1.0110。E關系到規格化和非規格化。

 

雙精度浮點數為64位:

對應於C語言中的double。

4、規格化

當指數位E表示的二進制序列不全0也不全1時,該浮點數為規格化形式。此時,指數位對應的實際值e被解釋為表示偏置(bias)形式的整數,相應的計算公式為:

 

| E |表示E的二進制序列表示的整數值;bias為偏移量;k為指數位寬度,對於單精度而言,k=8,故bias=127,E=10000001(binary)時,| E |=129(decimal),所以e=129-127=2。

對於規格化浮點數,IEEE—754標准規定尾數位小數點左側的隱含位位1,此時m的計算公式為:

m=| 1.M |

M=“1001000….0”,1.M=1.1001000…0,帶入上式得到 m=1+2^(-1)+2^(-4)=1.5625。

所以:

n=(-1)^(0) x (1.5625)^(2)= 2.44140625

5、單精度規格化浮點數特點

(1)、由於E表示的二進制序列幾部全為0也不全為1,所以E的表示范圍為0~255.

(2)、尾數m的最小值為1,對應的M全為0,最大值為2-2^(-23)

(3)、規格化浮點數能表示的數絕對值最大值為(2-2^(-23))x 2^(127)。

單精度規格化浮點數計算公式為:

6、非規格化

當E的二進制位全部為0時,該浮點數為非規格化形式。指數位e和m為:

 

單精度非規格化浮點數計算公式為:

 


免責聲明!

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



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