在Java中加载C长签名
我在C/C++中有一个4字节的在Java中加载C长签名,java,Java,我在C/C++中有一个4字节的有符号长变量,它使用memcpy保存在一个文件中 文件内容:“31E04CFB” 我需要用Java加载这个值,但是Java的int(4字节)和C++的long有不同的内存结构。是否有任何库可以帮助我完成这项工作,或者我必须自己编写它?您是编写此文件的人吗?你知道大端和小端的区别吗 如果你想要一个可移植的文件,写原始字节不是你要做的。您可以选择不同的文件格式吗 如果是的话,考虑一下。将其存储为字符串而不是原始字节 如果没有,那么您需要了解正在使用的硬件上的big-en
有符号长变量,它使用memcpy保存在一个文件中
文件内容:“31E04CFB”
我需要用Java加载这个值,但是Java的int
(4字节)和C++的long
有不同的内存结构。是否有任何库可以帮助我完成这项工作,或者我必须自己编写它?您是编写此文件的人吗?你知道大端和小端的区别吗
如果你想要一个可移植的文件,写原始字节不是你要做的。您可以选择不同的文件格式吗
如果是的话,考虑一下。将其存储为字符串而不是原始字节
如果没有,那么您需要了解正在使用的硬件上的big-endian/little-endian状态,它将不可移植。@wair92具体是哪一位?这个值是用big-endian还是little-endian表示的?@borosheuber指定的signed long
将其读入字节[]
,然后从中转换。你怎么知道c++的长内存结构是什么?@CarlosHeuberger如果这个数字是用memcpy
存储的,那么它就是一个二进制文件<代码>整数。解码(字符串)
无效。