繁体   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