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