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為:
單精度非規格化浮點數計算公式為: