Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.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中加载C长签名_Java - Fatal编程技术网

在Java中加载C长签名

在Java中加载C长签名,java,Java,我在C/C++中有一个4字节的有符号长变量,它使用memcpy保存在一个文件中 文件内容:“31E04CFB” 我需要用Java加载这个值,但是Java的int(4字节)和C++的long有不同的内存结构。是否有任何库可以帮助我完成这项工作,或者我必须自己编写它?您是编写此文件的人吗?你知道大端和小端的区别吗 如果你想要一个可移植的文件,写原始字节不是你要做的。您可以选择不同的文件格式吗 如果是的话,考虑一下。将其存储为字符串而不是原始字节 如果没有,那么您需要了解正在使用的硬件上的big-en

我在C/C++中有一个4字节的
有符号长
变量,它使用memcpy保存在一个文件中

文件内容:“31E04CFB”


我需要用Java加载这个值,但是Java的
int
(4字节)和C++的
long
有不同的内存结构。是否有任何库可以帮助我完成这项工作,或者我必须自己编写它?

您是编写此文件的人吗?你知道大端和小端的区别吗

如果你想要一个可移植的文件,写原始字节不是你要做的。您可以选择不同的文件格式吗

如果是的话,考虑一下。将其存储为字符串而不是原始字节


如果没有,那么您需要了解正在使用的硬件上的big-endian/little-endian状态,它将不可移植。

@wair92具体是哪一位?这个值是用big-endian还是little-endian表示的?@borosheuber指定的
signed long
将其读入
字节[]
,然后从中转换。你怎么知道c++的长内存结构是什么?@CarlosHeuberger如果这个数字是用
memcpy
存储的,那么它就是一个二进制文件<代码>整数。解码(字符串)
无效。