6.1浮點數的數值范圍
根據上面的探討,浮點數可以表示-∞到+∞,這只是一種特殊情況,顯然不是我們想要的數值范圍。
以32位單精度浮點數為例,階碼E由8位表示,取值范圍為0-255,去除0和255這兩種特殊情況,那么指數e的取值范圍就是1-127=-126到254-127=127。
(1)最大正數
因此單精度浮點數最大正數值的符號位S=0,階碼E=254,指數e=254-127=127,尾數M=111 1111 1111 1111 1111 1111,其機器碼為:0 11111110 111 1111 1111 1111 1111 1111。
那么最大正數值:
這是一個很大的數。
(2)最小正數
最小正數符號位S=0,階碼E=1,指數e=1-127=-126,尾數M=0,其機器碼為0 00000001 000 0000 0000 0000 0000 0000。
那么最小正數為:
這是一個相當小的數。幾乎可以近似等於0。當階碼E=0,指數為-127時,IEEE754就是這么規定1.0×2−127近似為0的,事實上,它並不等於0。
(3)最大負數
最大負數符號位S=1,階碼E=1,指數e=1-127==-126,尾數M=0,機器碼與最小正數的符號位相反,其他均相同,為:1 00000001 000 0000 0000 0000 0000 0000。
最大負數等於:
(4)最小負數
符號位S=0,階碼E=254,指數e=254-127=127,尾數M=111 1111 1111 1111 1111 1111,其機器碼為:1 11111110 111 1111 1111 1111 1111 1111。
計算得: