IEEE 754浮點數標準詳解

2020-07-16 10:04:20
在計算機系統的發展過程中,業界曾經提出過許多種實數的表達方法,比較典型的有相對於浮點數(Floating Point Number)的定點數(Fixed Point Number)。在定點數表達法中,其小數點固定地位於實數所有數位中間的某個位置。例如,貨幣的表達就可以採用這種表達方式,如 55.00 或者 00.55 可以用於表達具有 4 位精度,小數點後有兩位的貨幣值。由於小數點位置固定,所以可以直接用 4 位數值來表達相應的數值。

但我們不難發現,定點數表達法的缺點就在於其形式過於僵硬,固定的小數點位置決定了固定位數的整數部分和小數部分,不利於同時表達特別大的數或者特別小的數。因此,最終絕大多數現代的計算機系統都採納了所謂的浮點數表達法

浮點數表達法採用了科學計數法來表達實數,即用一個有效數位。一個基數(Base)、一個指數(Exponent)以及一個表示正負的符號來表達實數。比如,666.66 用十進位制科學計數法可以表達為 6.6666×102(其中,6.6666 為有效數位,10 為基數,2 為指數)。浮點數利用指數達到了浮動小數點的效果,從而可以靈活地表達更大範圍的實數。

當然,對實數的浮點表示僅作如上的規定是不夠的,因為同一實數的浮點表示還不是唯一的。例如,上面例子中的 666.66 可以表達為 0.66666×103、6.6666×102 或者 66.666×101 三種方式。因為這種表達的多樣性,因此有必要對其加以規範化以達到統一表達的目標。規範的浮點數表達方式具有如下形式: