将双精度值写入文件后,文本编辑器是否可能包含字符值

问题描述

如果您将双精度值写入二进制文件并在文本编辑器中打开该二进制文件。是吗
您可能会在文件中看到字符串 ABCDEFGH 吗?

解决方法

是的,虽然导致 ABCDEFGH 的双精度值会因系统而异。

大多数现代计算机对整数和 IEEE 浮点数都使用小端表示。在这种情况下,double 的值将是:1.5839800103804824e+40.

对于使用大端整数和大端 IEEE 浮点数的系统:2393736.541207228

在对整数和浮点数使用不同字节序的系统上,似乎不可能做到这一点。 (ABCDEFGH 对应于零的别名,因此您不一定可以以其他方式转换)

显然,有一些 ARM 芯片总体上使用很少的字节序,但交换了双精度数字的单词。在这样的系统上,可以使用 ABCDEFGH 生成 710524627902859500000.0

编辑:所有这些都假设您的文本编辑器使用的是与 ASCII 兼容的文本编码。