符号IEEE 754标准中的NAN位

dol*_*oll 1 floating-point ieee-754

我想执行浮点单精度加法运算

A = +无穷大(7F800000)B = - 无穷大(FF800000)

结果(A + B)是+ NAN还是-NAN?

另一个相关问题:

如果NAN通过算术运算传播,我们得到qNAN.而sNAN表示无效的异常操作.因此,上述操作将导致sNAN.我的理解是否正确?

Pas*_*uoq 5

IEEE 754标准未指定在应用产生NaN的操作时获得的NaN表示.唯一的建议,并不总是遵循,如果结果是NaN,因为至少有一个操作数是,那么结果应该与NaN操作数之一具有相同的表示.

从非NaN操作数生成NaN可能是中断控制流的机会(例如,使用陷阱),具体取决于系统的设置方式.如果主机系统没有设置为立即中断控制流程,则产生的NaN是安静的NaN.

信令NaN对于填充应被视为未初始化的内存非常有用:这会导致立即异常,而不是传播NaN值.返回信令NaN的算术运算是没有意义的,因为异常的原因是当前操作(它向NaN发出信号,而NaN又被忽略或根据系统的设置方式采取行动).返回信令NaN将使其看起来好像下一个操作是异常的原因.

NaN有自己的维基百科页面,其中包含大量信息.