1

我正在使用 x86 VC++(项目规范强加的约束)反序列化二进制 Java 数据流,并且正忙着正确解析序列化双精度值的值。

假设:

  • Java double 最好用 VC++ x86 long double 来表示。

我试过的:

  • 直接反序列化和字节交换反序列化。都不返回正确的值。(一旦它们被字节交换大端到小端,就能够很好地反序列化整数。)
  • Java 序列化文档没有帮助。

我害怕什么:

  • 指数和 mantessa 都以某种方式进行了字节交换。

在此先感谢您的帮助。

4

1 回答 1

0

答案是它是一个简单的字节交换。但是,使用内置的 C++ _byteswap 函数执行隐式转换为无符号整数,这会破坏双精度数据。

使用How to byteswap a double 中的一种字节交换解决方案?成功了。

于 2013-09-09T12:39:28.133 回答