帶符號浮點數
我們日常生活中存在的實數,對於表示非常小的數字(例如 +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
廣告