1. 程式人生 > >深入理解計算機原理——程式與執行(二)

深入理解計算機原理——程式與執行(二)

浮點數

(1)       浮點數的表示方法;

(2)       浮點數的精度與範圍;

(3)       浮點數的分佈;

(4)       浮點數階碼的表示方法;

(5)       浮點數位數規格化;

(6)       結合例子學習浮點數的表示方法;

(7)       IEEE 754標準;

2.1.1.1 定點數與浮點數

   計算機處理的數值資料多數帶有小數,小數點在計算機中通常有兩種表示方法,一種是約定所有數值資料的小數點隱含在某一個固定位置上,稱為定點表示法,簡稱定點數;另一種是小數點位置可以浮動,稱為浮點表示法,簡稱浮點數

定點小數是純小數,約定的小數點位置在符號位之後、有效數值部分最高位之前。若資料 x 的形式為 x = x0

.x1x2…xn( 其中x0為符號位,x1~xn是數值的有效部分,也稱為尾數, x1為最高有效位 ),則在計算機中的表示形式為:

      

          2- n≤ | x | ≤ 1 -  2- n

定點整數是純整數,約定的小數點位置在有效數值部分最低位之後。若資料 x 的形式為 x = x0 x1x2…xn ( 其中x0為符號位,x1~xn 是尾數, xn 為最低有效位 ),則在計算機中的表示形式為:

    

定點整數的表示範圍是:

1≤ | x | ≤ 2n -  1

用科學記數法表示,應該是這樣的:

(+ or - ) 1.(mantissa) * 2 ^ exponent

注意:小數點前面是有個1的。

IEEE 754規定了四種表示浮點數值的方式:單精確度(32位)、雙精確度(64位)、延伸單精確度(43位元以上,很少使用)與延伸雙精確度(79位元以上,通常以80位實現)。只有32位模式有強制要求,其他都是選擇性的。大部分程式語言都有提供IEEE浮點數格式與算術,但有些將其列為非必需的。例如,IEEE 754問世之前就有的C語言,有包括IEEE算術,但不算作強制要求(C語言的float通常是指IEEE單精確度,而double是指雙精確度)。