Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/130.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将序列化的Java Double转换为等效的VC++;类型_Java_C++_Visual C++_Serialization_Binary - Fatal编程技术网

将序列化的Java Double转换为等效的VC++;类型

将序列化的Java Double转换为等效的VC++;类型,java,c++,visual-c++,serialization,binary,Java,C++,Visual C++,Serialization,Binary,我正在使用x86 VC++(项目规范施加的约束)反序列化二进制Java数据流,并且在正确解析序列化double的值时遇到了麻烦 假设: Java双精度最好用VC++x86长双精度表示 我所尝试的: 直接反序列化和字节交换反序列化。两者都不返回正确的值。(一旦将整数从大端到小端进行字节切换,就可以很好地反序列化整数。) Java序列化文档没有任何帮助 我担心的是: 指数和Mantesa的每个字节都以某种方式交换 提前谢谢你的帮助 肯:答案是这是一个简单的byteswap。然而,使用内置

我正在使用x86 VC++(项目规范施加的约束)反序列化二进制Java数据流,并且在正确解析序列化double的值时遇到了麻烦

假设:

  • Java双精度最好用VC++x86长双精度表示
我所尝试的:

  • 直接反序列化和字节交换反序列化。两者都不返回正确的值。(一旦将整数从大端到小端进行字节切换,就可以很好地反序列化整数。)
  • Java序列化文档没有任何帮助
我担心的是:

  • 指数和Mantesa的每个字节都以某种方式交换
提前谢谢你的帮助


肯:答案是这是一个简单的byteswap。然而,使用内置的C++ yByTeWAP函数将隐式转换为无符号整数,这将使数据在双.</P>中变为混乱。

使用一个ByTeWAP解决方案。这个/xP2双可能是一个比长的双更好的选择。你是否尝试过手工比较爪哇和C++样本中的字节?Java在内部使用IEEE 754,因此它应该合理地清晰地映射,并且倾向于使用网络字节顺序进行通信(包括序列化)。另外,您确定您正在读取

double
内容,而不是越界点击
BLOCKDATA
描述符吗?@chrylis-正在进行位比较。这两个平台都订阅了IEEE754,但显然有些东西不符合要求。我确信我没有遇到BOCKDATA:在双字段前后检索数据都很好。@Tavian Barnes-您对x86双字段的理由是什么。这不会导致精度下降吗?在任何情况下,我都是以x64 double的形式接收数据的,因此我仍然需要能够从该格式解析数据。