2016-05-02 92 views
1

我在讀「每個計算機科學家應該知道的關於浮點運算的知識」,並且遇到了一些我不明白的地方。本文認爲,對於給定的B和E(基數和指數),歸一化浮點數的最大值是B×B^E,最小值是B^E。我不明白它的最大部分。浮點數範圍

以B = 10 P = 3,E = 4爲例。這個數字的最小值可以是1.00×10^4,等於10^4(B^E)。最大值爲9.99×10^4,與B×B^E接近但不完全等於它。論文沒有提及任何近似值,所以我假設我做錯了什麼。任何人都可以解釋爲什麼最大值是B×B^E

+0

你能指出你正在看的紙張的特定部分嗎?論文中主張的確切措詞是什麼? –

+0

@Mark Dickinson http://web.cse.msu.edu/~cse320/Documents/FloatingPoint.pdf第177頁(pdf格式),第一句。當談到超範圍實數時,也間接在第175頁上(pdf中的5):「不常見的情況是實數超出範圍,即其絕對值大於β×βemax或小於1.0 ×βemin「 –

回答

1

你必須在上下文中看看它。當通過最接近的浮點表示來近似數字時,該部分正在討論相對誤差。有數字比B·B^E更接近B·B^E - ulp(B^E),這些數字將被轉換爲B·B^E。使用下一個指數分析錯誤將是一個問題,因爲源數字將超出範圍,並且ulp會有所不同。在封閉範圍[B^E,B·B^E]內分析它更有意義。例如,對於B = 10,P = 3,E = 4,數字9.996·10^4比9.99·10^4更接近10.00·10^4,並且使用0.01·ul的ulp 10^5進行誤差分析將是一個錯誤,因爲9.996·10^4屬於不同於[10^5,9.99·10^5]的區間。