我正在使用 x86 VC++(项目规范强加的约束)反序列化二进制 Java 数据流,并且在正确解析序列化 double 值时遇到了麻烦。
假设:
- Java double 最好用 VC++ x86 long double 表示。
我尝试过的:
- 直接反序列化和字节交换反序列化。都不返回正确的值。 (一旦将整数从大端字节序转换为小端字节序,就能够很好地反序列化整数。)
- Java 序列化文档没有帮助。
我害怕的是:
- 指数和尾数都以某种方式进行了字节交换。
在此先感谢您的帮助。
肯
最佳答案
答案是它是一个简单的字节交换。但是,使用内置的 C++ _byteswap 函数执行隐式转换为无符号整数,这会破坏 double 中的数据。
使用 How to byteswap a double? 中的字节交换解决方案之一成功了。
关于java - 将序列化的 Java Double 转换为等效的 VC++ 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18538388/