定點數與浮點數
小數點在計算機中通常有兩種表示方法,一種是約定所有數值數據的小數點隱含在某一個固定位置上,稱為定點表示法,簡稱定點數;另一種是小數點位置可以浮動,稱為浮點表示法,簡稱浮點數
定點數:
定點數并不是僅僅只能表示整數,定點數也可以表示小數。 浮點數同樣可以表示小數和整數;定點數和浮點數只是計算機表示數據的兩種不同方式而已。
定點數的意思是:小數點的位置在計算機的存儲是約定好的,固定的。一個小數的整數部分和小數部分分別轉化為二進制的表示。
例如:十進制的 25.125
整數部分:25使用二進制表示為:11001
小數部分:0.125使用二進制表示為:.001
所以合起來使用11001.001 表示十進制的25.125
所以在一個8位的計算機中,前5位表示一個小數的整數部分,后3位表示小數部分,小數點默認是第五位后的位置(實際上計算機不會存儲小數點,只是大家這么約定)。
使用11001001表示十進制的25.125。看起來很完美,也很容易理解
定點數的缺陷:
一個8位的計算機,整數部分111111十進制最大只能表示為31;小數部分0.111 最大只能表示0.875,表示的數據范圍太小了。
當然在16位的計算機中,可以通過增大整數部分位數表示更大的數,增大小數部分的位數可以提高小數精度。但是這種方式對計算機來說開銷非常大,所以大多數計算機并沒有選擇使用定點數表示小數,而是采用浮點數表示小數。
浮點數:
浮點數表示小數:用科學計數法表示較大的數
178.125轉化為二進制為 10110010.001,又可表示為:1.0110010001 乘以 2的111次方(111是7的二進制表示)
10110010001 這部分被稱作尾數(M)
111這部分被稱作階碼(P)
正負被稱作數符(S): 0表示正數 , 1表示負數。
那么一個浮點數可以使用三部分表示:數符(S),階碼(P),尾數(M)。
根據IEEE754標準,64位計算機的長實數浮點表示:位符(1位)階碼(11位)尾數(52位)
178.125在計算機中使用浮點數表示為:

當相同位數的計算機表示數據(比如64位),浮點數能表示的數據范圍遠遠大于定點數表示的數據范圍。
當相同位數的計算機表示數據(比如64位),浮點數的相對精度比定點數要高。
浮點數在計算時,要分階碼部分的計算和尾數部分的計算,而且運算結果要求規格化,故浮點運算步驟比定點數運算步驟多,運算速度比定點運算速度低。
目前大多數計算機使用浮點數表示小數。

浙公網安備 33010602011771號