Floating point 浮点值:内存中还是寄存器中?

Floating point 浮点值:内存中还是寄存器中?,floating-point,Floating Point,其中提到: 调试时,优化程序通常会保留的值 in寄存器通常被推送到主存。这可能会影响,例如 例如,浮点比较的结果,因为 内存的范围和精度可能小于 寄存器 然而,据我所知,在IEEE 754中,浮点值的表示形式 应该是固定的,我想这个表示形式在内存或内存中都不会改变 登记 那么,在某些特殊情况下会出现这种差异吗?其实我的理解是有限的 在32位和64位计算机中。例如,在某些英特尔处理器上,浮点寄存器的宽度为80位,但C语言类型是常规的32位和64位float和double类型。正如你的引文所说,“内

其中提到:

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

然而,据我所知,在IEEE 754中,浮点值的表示形式 应该是固定的,我想这个表示形式在内存或内存中都不会改变 登记

那么,在某些特殊情况下会出现这种差异吗?其实我的理解是有限的
在32位和64位计算机中。

例如,在某些英特尔处理器上,浮点寄存器的宽度为80位,但C语言类型是常规的32位和64位
float
double
类型。正如你的引文所说,“内存中的(32位或64位)值比寄存器中的(80位)值具有更小的范围和精度。”

这是对一般情况的一般性评论。具体实现的效果会有所不同。你有什么特别的问题吗?@MikeW啊,我想不出一个实现是如此“特别”的,所以很遗憾,这些关键词从谷歌那里找不到有价值的信息。