簡體   English   中英

IEEE 754和機器編號

[英]IEEE 754 and machine numbers

我一直在嘗試將機器編號(例如單位舍入(u)和epsilon(e))與IEEE 754標准結合使用。 我的教科書指出了一些對我來說真的沒有意義的事情。

根據我的教科書,單位四舍五入是:

  • 對於單精度(尾數為23位):u = 6e-8
  • 對於雙精度(尾數為52位):u = 2e-16

我一直在嘗試為具有兩個關系的這些結果得出公式:

  • 我的教科書指出:“在四舍五入的二進制算術中,我們通常有e = 2 * u”
    • e = 2 ^ -n,n是尾數位的數量

這些組合的結果將得出:u = 2 ^-(n + 1),同樣,n是尾數位的數量。 使用u的給定結果檢查此公式的不同精度:

對於單身:u = 2 ^-(23 + 1)= 5.96e-8,此結果將檢出。 對於double:u = 2 ^-(52 + 1)= 1.11e-16,此結果未檢出。

有人可以幫助我為單位舍入得出正確的公式,還是向我指出我一直在犯的一些錯誤? 感謝所有幫助。

這似乎是教科書中的錯誤。

IEEE-754基本32位和64位二進制浮點格式的有效位數分別為24位和53位。 1有時會指出有效位數是23位和52位,但這是一個錯誤。 這些是用於編碼有效位數的主要字段的大小,但是完整的24位有效位數在主要有效字段中編碼為23位,在指數字段中編碼為1位。 同樣,完整的53位有效數字在主有效字段中編碼為52位,在指數字段中編碼為1位。 (全有效位的前導位來自指數字段:如果指數字段為零,則前導有效位為0。如果指數字段既不是零也不是全1,則前導有效位是1。如果指數字段全部為1,則浮點對象是一個特殊值,可以是無窮大或NaN。)

當24位有效數字的前導位表示值1時,最低有效位表示值2 -23 那就是所謂的ε。 當將實數舍入為最接近的可表示浮點值時,最大誤差為最低有效位的值的一半。 (因為如果距離大於兩個數字之間的距離的一半,我們會選擇另一個方向的數字,因為它更接近。)

對於53位有效數字,最低有效位表示相對於前導位的值2 -52 ,而四舍五入到最接近值時的最大誤差是該值的一半。 因此,對於前導位1,最大舍入誤差應為2 -53 ,約為1.11•10 -16 如果您的書說是2 -16 ,那是不正確的。

腳注

1 “有效”是首選術語。 “ Mantissa”是對數的分數部分的舊術語。 有效位數是線性的。 尾數是對數的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM