2024-05-15 10:35:43 发布
网友
我想导出一个二进制格式,然后在Java中读取二进制文件,但是我无法获得正确的值,例如
f.write(struct.pack('<f', 21.988))
在Java中我有这个值:8.962863E27
8.962863E27
我尝试发送一个二进制文件,并将输出匹配到用java编写的ubjson库中,起初我使用Big-endian标记,但不起作用,当我使用Little-endian时,它是这样工作的。
谢谢你的指导。
编辑:库的某些部分
您的Java应用程序使用的是相反的endianess;您编写的是little-endian,但是Java将其解释为big-endian:
>>> struct.unpack('>f', struct.pack('<f', 21.988)) (8.962863280123082e+27,)
写入big-endian,Java将正确读取值:
如果这不起作用,还有其他原因导致输出没有正确解释。UBJSON specification对endianess非常清楚,应该全部编码为big-endian。在
您的Java应用程序使用的是相反的endianess;您编写的是little-endian,但是Java将其解释为big-endian:
写入big-endian,Java将正确读取值:
^{pr2}$如果这不起作用,还有其他原因导致输出没有正确解释。UBJSON specification对endianess非常清楚,应该全部编码为big-endian。在
相关问题 更多 >
编程相关推荐