我正在學習浮點格式(IEEE)。 在單精度浮點格式中,提到尾數有24位,所以它有6位半精度的小數位(如「瞭解機器」一書)和7.22 decimal digits of precision。如何根據位數計算精度的十進制數字?
我不明白如何計算精度的小數位數。 有人請賜教嗎?
我正在學習浮點格式(IEEE)。 在單精度浮點格式中,提到尾數有24位,所以它有6位半精度的小數位(如「瞭解機器」一書)和7.22 decimal digits of precision。如何根據位數計算精度的十進制數字?
我不明白如何計算精度的小數位數。 有人請賜教嗎?
對於24位,假設爲符號保留一位,則可以表示的最大十進制數是2^23-1 = 8388607。也就是說,你可以得到6位數字,有時候是7位數字。這通常表示爲「6 1/2位數」。如果24位代表一個無符號數,那麼你可以存儲的最大值是2^24-1 = 16,777,215,或7和一個小數位。
當有人引用一個帶有小數點位數(如7.22十進制數字)的數字時,他們正在做的是取最大值的日誌(基數爲10)。所以日誌(16777115)= 7.22。
一般情況下,你會從給定比特數得到的小數位數爲:
d=log[base 10](2^b)
其中b是位和d的數量是小數位數。然後:
d=b * log(2)
d~=b * .3010
所以24位給出24 * 0.3010 = 7.224
參見[是最顯著十進制數字精度可轉換爲二進制和回十進制沒有意義的6或7.225的損失?] (http://stackoverflow.com/q/30688422/183120)的鍛鍊和答案的解釋。 – legends2k