1

我正在寻找一种序列化浮点的方法,以便在它们的序列化形式中字典比较与浮点比较相同。我认为可以通过以下形式存储它:

| signed bit (1 for positive) | exponent | significand |

指数和有效数字将被序列化为大端,而补码将被用于负数。

这行得通吗?我不介意它是否会因为 NaN 而中断,但是让 INF 比较工作会很好。

4

1 回答 1

3

IEEE 数字的格式是专门设计的,因此可以使用“普通”整数比较。但是,这仅适用于比较两个相同符号的数字时。

您建议在数字为负数时补充数字是合理的,因此这将起作用。

这适用于 +-Inf:s 和次正规数。然而,NaN:s 将不起作用,或者更确切地说,它们将被认为比 inf:s“更大”。

唯一有问题的情况是“-Zero”(即符号=1,指数=0,尾数=0)。根据 IEEE,零 == -零。您必须决定是否要将 -Zero 视为零,将它们视为不同,还是将特殊代码添加到比较例程中。

于 2011-03-09T08:51:30.890 回答