【问题标题】:Floating point serialization, lexicographical comparison == floating point comparison浮点序列化,字典序比较 == 浮点比较
【发布时间】:2011-03-09 08:27:45
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: serialization comparison floating-point lexicographic


    【解决方案1】:

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

    您建议在数字为负数时补充数字是合理的,所以这会奏效。

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

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

    【讨论】:

      猜你喜欢
      • 2011-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-15
      • 2021-07-10
      • 2011-10-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多