我写了一些 C 代码,将某些值序列化到一个文件中,该文件随后在另一台机器上用 Java 反序列化(使用自定义代码)。
我正在序列化的值包括 64 位 double 浮点实数。当我编写代码时,它将仅在 Linux 上编译和运行,并提供可用于编译它的 gcc
。根据 IEEE 754 标准,我使用 ieee754.h
访问值的所有部分,并将这些部分写入文件。在 Java 端,我会简单地使用 Double.longBitsToDouble(long)
重新组合值。
问题是我被要求使用 xlc
10 使代码能够在 AIX 5.3 上编译和运行。
在 AIX 上是否有任何等效于 ieee754.h
的东西?
最佳答案
除了字节顺序问题,IEEE754 是一种固定格式。不需要系统标题来告诉您它的外观。只需执行以下操作:
uint64_t rep;
double x;
memcpy(&rep, &x, sizeof rep);
如果您在必须这样做的平台上,您可能希望包含一些用于有条件地字节顺序交换结果的代码,但据我所知,AIX 不会是其中之一。
关于c - AIX 相当于 ieee754.h,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10791446/