簡體   English   中英

浮點乘法溢出

[英]Floating point multiplication overflow

我有下面的浮點乘法規則。

我的問題是我怎么知道E超出范圍才能知道它的溢出?

我知道,如果對結果進行歸一化,我們可以應用E = exp-偏差;如果對結果進行歸一化,則E = 1-偏差。 基於exp,我知道它是經過歸一化或反歸一化的,所以我可以計算E的最大值,但是在這種情況下,我還沒有exp,我還不能計算E的范圍,所以我怎么知道是否發生溢出?

如果您不知道任何事情的最大范圍,那么您將不知道它是否會/不會溢出(或導致下溢)。

然而:

  • 如果您假設輸出與輸入的范圍相同,則可以假設某些內容不會溢出。 例如,考慮“ E1 + E2 = 10 +(-1)= 9”,因為9在10到-1之間,因此它不會溢出。

  • 對於諸如家庭作業和uni作業之類的事情,每當缺少必要的信息時,您都可以假設自己喜歡的東西並陳述您的假設(例如,“ 我假設這是IEEE雙浮點數,其中指數字段為8位,偏差為128,因此范圍是-128到+127 “); 然后聲稱如果您的假設正確,則指數將/不會溢出。

  • 對於真正的軟件,您可以找出范圍是什么(例如,通過檢查float.h )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM