2012-05-10 80 views
0

我想了解浮點表示法。我不理解浮點數中的'無窮''NaN'表示。 我正在查看錶provided by TopCoder爲什麼無限的浮點表示顯然是0^n?

無限由全1的指數和全0的尾數表示。

我只能讀取它作爲0^n,我不知道如何趨於無窮。

+6

這只是一個特殊的表示 - 你不會把它看作是一個正常的浮點值。 –

+0

感謝保羅,我的印象是這些位模式通過一些方法評估到無窮大。 – Yogi

+1

否 - FPU將句柄值(例如NaN和INF)視爲特殊情況,以便在計算中使用它們時它們的行爲正確,但對位模式沒有欺騙。 –

回答

2

你應該簡單地忽略所使用的位模式並將無窮和無限小數視爲特殊值。除非你在浮游物上做一些擺弄(我認爲沒有什麼理由要這樣做),否則你只會在IEEE規則說它們應該被創建的地方遇到這些值,並且忽略這個問題是安全的。計算機如何代表他們。即使你做的不是標準計算,我的猜測是99%的時間,位模式並不重要。

當然,以上都沒有說你應該忽略標準的,有限的,非零浮點數的實現。儘管從尾數/指數到存儲器中的位的步驟仍然幾乎無關緊要。在你鏈接的頁面中,作者聲稱「C++中的全局變量被初始化爲零位模式」 - 這是錯誤的。在C++中,POD類型的全局變量被初始化爲語義零所需的任何位模式(第3.6.2.2節,第8.5.5節)。我相信C++標準並不要求任何特定的位模式用於任何浮點值。

相關問題