0

此 wiki 页面中,提到:

在调试时,优化程序通常保存在寄存器中的值通常会被推送到主存储器。例如,这可能会影响浮点比较的结果,因为内存中的值可能比 寄存器中的值具有更小的范围和精度。

但是,据我所知,在 IEEE 754 中,浮点值的表示应该是固定的,我想这种表示在内存或寄存器中都不会改变?

那么,差异是否出现在某些特殊情况下?实际上我的理解仅限于 32 位和 64 位机器。

4

1 回答 1

1

例如,在某些 Intel 处理器上,浮点寄存器是 80 位宽,但 C 语言类型是常规的 32 位和 64 位floatdouble类型。就像您的报价一样,“在内存中(32 位或 64 位)值的范围和精度比寄存器中的(80 位)值小。”

于 2013-06-15T04:52:11.477 回答