这似乎很基本,但我在回答以下问题时遇到了很多麻烦:
给出以IEEE754格式表示的两个数字X和Y,这样计算X-Y将导致下溢。
据我所知,每次操作都可能导致下溢,但对于我的生命,我无法找到减法的例子。
请帮助!!! 感谢
答案 0 :(得分:4)
当默认异常处理生效时,产生微小(在子正常区间 1 中)非零结果的减法在概念上会导致下溢异常,但没有可观察到的影响,因为:
对于家庭作业,您可以执行具有微小结果的减法并合法地声称发生了下溢异常,即使没有引发标记且没有发生陷阱。
要创建下溢异常的可观察效果,您需要将下溢异常的处理从默认值更改为其他内容,例如在发生下溢时启用陷阱。这样做的手段取决于语言。
1 在32位二进制格式中,如果数量小于2 -126 ,则数字很小。在64位格式中,如果数量小于2 -1023 ,则数字很小。 IEEE 754标准允许在结果舍入到正常有效长度之前或之后确定细微度。
答案 1 :(得分:1)
我看到在减法上获得下溢的唯一可能性是禁用非规范化数字。如果你能做到这一点,会有成对的不同双打,其差异太小而不能表示为非零双。