2016-09-03 40 views
1

我是正確的結論是:與指數超過52的所有整數甚至在64位浮點

  • 所有的64位浮點指數在52整數將是什?例如,如果指數爲53,尾數爲0000000000000000000000000000000000000000000000000001,則數字爲100000000000000000000000000000000000000000000000000010 - 結尾爲10。如果尾數是54,則數字以100結尾。

  • 我們增加的指數,更多的整數,不能代表更多 - 爲54指數 - 它不可能代表一個數字 - 9007199254740993,與55指數 - 我們不能代表3號碼(因爲我們有兩位尾數可以包含01,10,11的組合)。

回答

2

所有的64位浮點指數在52整數將 甚至?

是的。 F64有52位編碼的尾數位,加上一個隱含位。我們正在談論一個「無偏」的指數,所以你的價值是2^exp*1.mant

想象一下,要將F64轉換爲整數,尾數將被無偏指數左移。移動52將保證不需要舍入的整數。 53將保證偶數,因爲零像你所顯示的那樣移入。

我們增加了指數的越多,就越整數不能 代表

是的,但這樣的比你形容得更快。您的示例值僅僅是第一次出現。在範圍(2^53,2^54)中,只有偶數可以像你所說的那樣表示,所有整數只有一半存在於F64中,所以在該範圍內,所有2^52個奇數整數都不被表示。

+0

謝謝,你是什麼意思_我們在談論一個'無偏'的指數,所以你的價值是2^exp * 1.mant._? –

+0

我的意思是你用來表示值的兩個實際的力量。潛在的困惑是例如F64使用一個偏差爲1023的11位指數字段,該字段被添加到指數中。爲了表示1.0(指數爲零:2^0 * 1.0),你最終會得到1023 == 0x3FF,我經常稱之爲'指數'。這有幫助嗎? – Casperrw

+0

是啊,謝謝,我現在明白了 –

相關問題