【发布时间】:2011-02-04 15:52:15
【问题描述】:
假设我想要一个带有两个浮点数的函数(x 和 y),我想比较它们,而不是使用它们的 float 表示,而是使用它们作为 32 位 unsigned int 的按位表示。也就是说,像-495.5 这样的数字具有0b11000011111001011100000000000000 或0xC3E5C000 作为float 的位表示,而我有一个具有相同位表示的unsigned int(对应于十进制值3286614016,我没有不在乎)。我有什么简单的方法可以仅使用它们各自的 unsigned int 对应对象中包含的信息对这些浮点数执行像 <= 这样的操作吗?
【问题讨论】:
-
您可以按照 cpalmer 在下面提到的方式进行操作,但请注意,IEEE 浮点数的无符号整数表示的排序方式与其等效浮点值的排序方式不同。例如,当将它们作为无符号整数进行比较时,-0.0 与 0.0 不同。
-
你打错字了:应该是
-459.5, not-495.5
标签: c++ objective-c c floating-point