这似乎很基本,但我在回答以下问题时遇到了很多麻烦:
给出以 IEEE754 格式表示的两个数字 X 和 Y,这样计算 XY 将导致下溢。
据我了解,每个操作都可能导致下溢,但在我的一生中,我找不到减法的例子。
请帮忙!!!谢谢
这似乎很基本,但我在回答以下问题时遇到了很多麻烦:
给出以 IEEE754 格式表示的两个数字 X 和 Y,这样计算 XY 将导致下溢。
据我了解,每个操作都可能导致下溢,但在我的一生中,我找不到减法的例子。
请帮忙!!!谢谢
当默认异常处理生效时,产生微小(在次正常区间1中)非零结果的减法在概念上会导致下溢异常,但没有可观察到的效果,因为:
对于家庭作业,您可以执行一个结果很小的减法,并合法地声称发生了下溢异常,即使没有引发标志也没有发生陷阱。
要创建下溢异常的可观察效果,您需要将下溢异常的处理从默认更改为其他方式,例如在发生下溢时启用陷阱。执行此操作的方法取决于语言。
1在 32 位二进制格式中,如果一个数字的大小小于 2 –126 ,则该数字很小。在 64 位格式中,如果一个数字的大小小于 2 –1023 ,则该数字很小。IEEE 754 标准允许在将结果四舍五入到正常有效数字长度之前或之后确定微小度。
The only possibility I see for getting an underflow on subtraction is to disable denormalized numbers. If you could do that, there would be pairs of distinct doubles whose difference would be too small to represent as a non-zero double.