serialization - 浮点序列化,字典序比较==浮点比较

标签 serialization comparison floating-point lexicographic

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

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

指数和尾数将被序列化为大尾数,负数将采用补码。

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

最佳答案

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

您对负数进行补足的建议是合理的,因此这会起作用。

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

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

关于serialization - 浮点序列化,字典序比较==浮点比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5243091/

相关文章:

jQuery 序列化不会在嵌套 div 中选取 select 标签

ruby-on-rails - Rails 序列化符号数组属性

c - 如何将存储在数组中的字符串与 c 中完整库中的函数名称进行比较

Javascript:比较由 javascript 设置的 backgroundColor

c - 浮点计算C错误结果

c# - 将对象序列化为字符串

java - XStream-不包含某些值

java - 我可以从 Action 监听器内部在类中设置数组吗? java

objective-c - 浮点工作正常......大多数时候

c++ - 如何在 C/C++ 中有效地计算 double 到两位小数?