繁体   English   中英

将int转换从字节从C ++迁移到Java

[英]Migrate a int conversion from byte from C++ to Java

我在C ++中有以下代码

int magic;
stream.read(&magic, sizeof(magic));

它存储字节数组中的magic值。

我想将其迁移到Java,到目前为止,我已经做到了:

int magic = stream[0];

但这是行不通的。 我认为这是由于Java和C ++中int的长度所致。 我应该在Java部分中使用两个字节来检索正确的幻数吗?

byte[] stream = ...
ByteBuffer buf = ByteBuffer.wrap(stream);
buf.order(ByteOrder.LITTLE_ENDIAN);
int magic = buf.readInt();

参见ByteBuffer 一个Java int总是4个字节带符号,并且默认情况下Java使用BIG_ENDIAN字节顺序,因此您可能想设置一个相反的顺序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM