浮點數,是屬于有理數中某特定子集的數的數字表示,在計算機中用以近似表示任意某個實數。具體的說,這個實數由一個整數或定點數(即尾數)乘以某個基數(計算機中通常是2)的整數次冪得到,這種表示方法類似于基數為10的科學計數法。
1 、浮點數基礎知識
浮點數由四部分構成:符號位(Sign Bit)、尾數(Mantissa)、基數(Radix)和指數(Exponent)。根據《IEEE Standard 754 for Binary Floating-Point Arithmetic》的定義–二進制標準浮點數,基數為2。s、m、e分別為符號數、尾數和指數,n為相應的浮點數值。
IEEE-754規定了三種浮點數:單精度(float)、雙精度(double)和擴展精度。
其中單精度為32bit,其中包含1位符號位S,8位指數位E和23位尾數位M。S、E、M為相應的二進制序列。
S:
正數 0.1xxxxxx
負數 1.1xxxxxx
M:
表示小數點之后的二進制尾數。
M為0110表示:二進制.0110
E:
規格化(normalized)
非規格化(denormalized)
2 、規格化浮點數
E表示的二進制不全為0也不全為1時該浮點數為規格化浮點數。
e表示偏置(Biased)
|E|表示E的二進制整數
bias表示偏置
k為指數位寬
對于單精度浮點數來說k為8,所以bias為127。E=“10001000”為例,|E|=136,故e為9。
對于規格化浮點數,標準規定尾數位小數點左側的隱含位為1,所以:
m = |1.M|
例如M=“10010…0”則1.M=“1.10010…0”所以m=1.5625
s=0
m = 1.5625
e =9
n =55.5112
單精度浮點數的公式可表示為:
3、非規格化浮點數
E的二進制位全為0時該浮點數為非規格化浮點數。
bias=127
單精度非規格化浮點數公式:
-0.0 符號位為1,其余位為0.
+0.0全部為0.
4、特殊數值
E的二進制位全為1時為特殊數值。
M全0,n無窮大
M全1,S為1,n負無窮大
M全1,S為0,n正無窮大
M不全為0和1,n NaN(Not a Number)
5 、雙精度浮點數
IEEE-754定義雙精度浮點數共64bit 。1位符號位S,11位指數位E和52位尾數位M。同樣可以劃分為規格化、非規格化和特殊數值。
-
計算機
+關注
關注
19文章
7488瀏覽量
87854 -
浮點數
+關注
關注
0文章
60瀏覽量
15868
發布評論請先 登錄
相關推薦
評論