dol*_*oll 1 floating-point ieee-754
我想执行浮点单精度加法运算
A = +无穷大(7F800000)B = - 无穷大(FF800000)
结果(A + B)是+ NAN还是-NAN?
另一个相关问题:
如果NAN通过算术运算传播,我们得到qNAN.而sNAN表示无效的异常操作.因此,上述操作将导致sNAN.我的理解是否正确?
IEEE 754标准未指定在应用产生NaN的操作时获得的NaN表示.唯一的建议,并不总是遵循,如果结果是NaN,因为至少有一个操作数是,那么结果应该与NaN操作数之一具有相同的表示.
从非NaN操作数生成NaN可能是中断控制流的机会(例如,使用陷阱),具体取决于系统的设置方式.如果主机系统没有设置为立即中断控制流程,则产生的NaN是安静的NaN.
信令NaN对于填充应被视为未初始化的内存非常有用:这会导致立即异常,而不是传播NaN值.返回信令NaN的算术运算是没有意义的,因为异常的原因是当前操作(它向NaN发出信号,而NaN又被忽略或根据系统的设置方式采取行动).返回信令NaN将使其看起来好像下一个操作是异常的原因.
NaN有自己的维基百科页面,其中包含大量信息.