2014-03-01 23 views
0

在標準中,的表示的NaNINF是這樣的:的NaN和+ -INF在浮點數系統以下IEEE754

對於的NaN:指數= EMAX + 1 &尾數= 0;

對於INF:指數= emax + 1 &尾數= 0;

他們有很多方法和計算結果這兩個值。

但實際上是NaN(INF)

如何做系統「決定」或「判斷」存儲價值作爲這一(二)?

在這裏可以是似乎爲奇數對我的情況下:

A = B = 1 * 2(EMAX);

然後計算c = a + b,實際結果爲1 * 2 ^(emax + 1);

現在,根據標準c不是可用的FP值;

那麼系統如何在設備中存儲c?

是不是NaN

如果是的話,這怎麼可能是合理的?

我的意思是,1 * 2 ^(emax + 1)是(應該是)一個數字......在常識中......?

如果是這種情況,那麼ACTUALLY如何做標準認爲NaN是什麼?

如果不是,那我們該如何處理?

我正在考慮這樣一個:

let eM = emax + 1;

然後1d.d ... d * 2 ^(EM-1)= ... 1d.d d * 2 ^(EMAX)

與1d.d ... d具有法律數數字由系統。

這實際上是一種處理非規格化數字的方式。


這裏的事情是這樣的:

是判斷之前來計算的完成?

如果是前者,上述可能是一個問題或不是?

在另一方面,則任務似乎undonable ...

有沒有人思考這個問題?

Thx考慮它!

注意:還提供了+ -INF的東西。

+0

你的所有問題都回答http://en.wikipedia.org/wiki/IEEE_floating_point#Exception_handling。不要花費頁面去思考一個選擇,然後選擇另一個。它會造成一個毫無用處的長期問題,而這完全是無法回答的問題。 –

回答

1

Wikipedia

的五個可能的例外是:

  • 無效操作(例如,負數的平方根)(返回QNAN默認)。
  • 除零除(對有限操作數的操作給出精確的無限結果,例如1/0或log(0))(默認返回±無窮大)。
  • 溢出(結果太大,無法正確表示)(默認返回±無窮大(對於圓到最近的模式))。
  • 下溢(結果是非常小的(在正常範圍之外),並且是不精確的)(默認返回非正規化值)。
  • ...