Floating point IEEE 754标准中NAN的符号位

Floating point IEEE 754标准中NAN的符号位,floating-point,ieee-754,Floating Point,Ieee 754,我想执行浮点单精度加法运算,其中 A=+无穷大7F800000 B=-无穷大FF800000 结果+B是+NAN还是-NAN 另一个相关问题: 如果NAN通过算术运算传播,我们得到qNAN。 而sNAN表示无效的异常操作。 因此,上述操作将导致sNAN。 我的理解正确吗?IEEE 754标准没有指定在应用生成NaN的操作时,您得到的NaN表示形式。唯一不总是遵循的建议是,如果结果为NaN,因为至少有一个操作数为NaN,则结果应具有与其中一个NaN操作数相同的表示形式 从非NaN操作数生成NaN可

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

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

结果+B是+NAN还是-NAN

另一个相关问题:

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

IEEE 754标准没有指定在应用生成NaN的操作时,您得到的NaN表示形式。唯一不总是遵循的建议是,如果结果为NaN,因为至少有一个操作数为NaN,则结果应具有与其中一个NaN操作数相同的表示形式

从非NaN操作数生成NaN可能是中断控制流的一个机会,例如,使用陷阱,这取决于系统的设置方式。如果主机系统未设置为立即中断控制流,则生成的NaN是安静的NaN

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


NaN有自己的许多信息。

IEEE 754标准没有指定在应用生成NaN的操作时获得的NaN表示形式。唯一不总是遵循的建议是,如果结果为NaN,因为至少有一个操作数为NaN,则结果应具有与其中一个NaN操作数相同的表示形式

从非NaN操作数生成NaN可能是中断控制流的一个机会,例如,使用陷阱,这取决于系统的设置方式。如果主机系统未设置为立即中断控制流,则生成的NaN是安静的NaN

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


NaN拥有自己的大量信息。

在你的第二段中,例外是指陷阱吗?@tmyklebu我尝试使用“例外”来中断控制流的所有方式,其精神是“各种形式的可选异常处理,包括陷阱和其他模型,如try/catch”。这是错误的吗?IEEE 754使用异常的方式与现代编程语言不同。除零、无效操作、溢出、下溢和不精确操作都是例外,处理每个无穷大、NaN、无穷大、零、四舍五入的默认方式,同时在某些寄存器中设置一个位代表了几个选项之一。另一个选项是在Linux上设置陷阱,发送一个SIGFPE,您可以为每个异常单独配置它。所以我认为你的意思是陷阱而不是引发异常,或者是“是”而不是“可能是”@tmyklebu我在第2段中用“中断控制流”替换了“异常”,我只想用“IEEE 754异常”这个词。在你的第二段中,异常是指陷阱吗?@tmyklebu我试图用“异常”来中断控制流的所有方式,本着中短语“各种形式的可选异常处理,包括陷阱和其他模型,如try/catch”的精神。这是错误的吗?IEEE 754使用异常的方式与现代编程语言不同。除零、无效操作、溢出、下溢和不精确操作都是例外,处理每个无穷大、NaN、无穷大、零、四舍五入的默认方式,同时在某些寄存器中设置一个位代表了几个选项之一。另一个选项是在Linux上设置陷阱,发送一个SIGFPE,您可以为每个异常单独配置它。所以我认为你的意思是陷阱而不是引发异常,或者是“是”而不是“可能是”@tmyklebu我在第2段中用“中断控制流”替换了“异常”一词,该词仅用于“IEEE 754采取行动的异常”。