定點數
定點數就是指小數點的位置固定不變,小數點的位置通常有兩種約定方式:定點整數(純整數,小數點在最低有效值位之后 比如:100.)和定點小數(純小數,小數點在最高有效數值位之前 比如:.101)。
浮點數
浮點數是小數點位置不因定的數,它能表示更大范圍。在浮點表示法中,階碼通常為帶符號的純整數,尾數為帶符號的純小數,浮點靈敏的表示格式如下:
階符 | 階碼 | 數符 | 尾數
浮點數所能表示的數值范圍主要由階碼決定,所表示數值的精度由尾數決定。為了充分利用尾數來表示更多的有效數字,通常采用規格化浮點數。規格化浮就是將尾數的絕對值限定在區間[0.5 , 1]。當尾數用補碼表時,需要注意如下問題。
1. 若尾數 M >= 0 ,則其規格化的尾數形式為 M=0.1xxxx……x, 其中 x 可為 0 或 1。即尾數限定在[0.5 , 1]之間。
2. 若尾數 M < 0 ,則其規格化的尾數形式為 M=1.0xxxx……x,其中 x 可為 0 或 1。即尾數限定在[-1,-0.5]之間。
3. 工業標準IEEE 754
S | P | M
其中,S為數的符號位,為0時表示正數,為1時表示負數;P為階碼,通常用移碼表示;M為尾數,用原碼表示。
目前,計算機中主要使用三種形式的IEEE 754 浮點數,在IEEE 754 標準中,約定小數點左邊隱含有一位,通常這位數就是1。
參數 單精度浮點數 雙精度浮點數 擴充精度浮點數
浮點數字長 32 64 80
尾數長度 23 52 64
符號位長度 1 1 1
階碼長度 8 11 15
指數偏移量 +127 +1023 +16383
可表示的實數范圍 10^-38~10^38 10^-308~10^308 10^-4932~10^4932
例如:
十進制的 123.456 用IEEE754 單精度浮點二進制表示。
首先分別轉換整數跟小數部分
整數部分:
十進制 123 = 二進制 1111011
小數部分:
十進制 456 = 二進制 01110100101111000 110
123.456 轉 IEEE754 單精度浮點數二進制為:
符號位 階碼 尾數
0 10000101 11101101110100101111000
說明:
符號位
因為此數為正數所以為0。
階碼
IEEE 754 標準 把小數點移至最高有效位后,即指數為 6 ,再加上 指數偏移量 127 (等于 133) 那么階碼(移碼)的二進制為 10000101 。
尾數
單精度浮點數只保留23位尾數即多余的尾數去掉,即原碼 11101101110100101111000
123.456 轉 IEEE754 單精度浮點數二進制為:
0 10000101 11101101110100101111000
IEEE 754 浮點數 十進制轉二進制 WEB工具 URL:
http://babbage.cs.qc.edu/IEEE-754/Decimal.html