帶符號浮點數


我們日常生活中存在的實數,對於表示非常小的數字(例如 +0.00000012347650)並不方便。同樣的數字可以用科學記數法更方便地表示為 +1.23476× 10−07。但這實際上代表 +0.000000123476。所以存在 0.00000000000005 的誤差,這形成了一個非常小的百分比誤差。

浮點表示在概念上類似於科學記數法。邏輯上,浮點數由以下部分組成:

  • 給定長度的給定基數(或基數)中帶符號的(表示正數或負數)數字字串。此數字字串稱為尾數、尾數或係數。

  • 修改數字大小的帶符號整數指數

需要注意的是,當用固定數量的位(例如,32 位或 64 位)表示時,浮點數會遭受精度損失。這是因為存在無限數量的實數(即使在 0.0 到 0.1 的小範圍內)。另一方面,一個 n 位二進位制模式可以表示有限的 2n 個不同的數字。因此,並非所有實數都可以表示。浮點數運算效率遠低於整數運算。因此,如果應用程式不需要浮點數,最好使用整數。將使用最接近的近似值,從而導致精度損失。現代計算機採用 IEEE 754 標準來表示浮點數。有兩種表示方案:32 位單精度和 64 位雙精度。

IEEE 浮點數具有三個基本組成部分:符號、指數和尾數。尾數由分數和隱式前導數字(如下所述)組成。指數基數(2)是隱式的,不需要儲存。

下表顯示了單精度(32 位)和雙精度(64 位)浮點值的佈局。每個欄位的位數顯示在後面,後面跟著方括號中的位範圍。00 = 最低有效位。


符號
指數
分數
單精度
1 [31]
8 [30–23]
23 [22–00]
雙精度
1 [63]
11 [62–52]
52 [51–00]

以位表示,浮點數如下所示:

單精度 - SEEEEEEE EFFFFFFF FFFFFFFF FFFFFFFF

雙精度 - SEEEEEEE EEEEFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFFFFFFFFFF


更新於: 2020 年 6 月 27 日

2K+ 瀏覽量

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告