如果有一段 8 字节的数据,将双精度浮点数写入其中,在什么情况下数值比较和字典序排序会产生相同结果?
目前的理论:正数、大端序
我认为,如果这个数字是正数,并且表达方式是大端序,那么浮点数的数值排序将与字典序排序的字节顺序匹配。
这个想法是,首先按指数排序,然后按尾数排序。即使是“非规格化”的 IEEE 表示法也不应该有任何问题。
这是真的吗?
(我正在使用 Node 的 Buffer::writeDoubleBE,但这并不重要。)
后续问题
我认为,一个简单的修改可以将其扩展到负数:对所有正数进行 XOR 运算,结果为 0x8000...
,对所有负数进行 XOR 运算,结果为 0xffff...
。这应该翻转两个数字的符号位(所以负数排在前面),然后反转负数的排序顺序。有人看到这里是否存在问题?