将本机uint8_t(Java字节)转换为int

时间:2014-01-07 02:34:28

标签: java c++ java-native-interface

我有一个原生函数(来自库),可以对 uint8_t 类型(无符号8位数0-255)进行一些操作。 Java最接近的是 byte ,必须签名。

如何将此字节转换为适合在Java中使用的正整数?我知道我必须将它存储在 int 中才能正确表示0-255之间的数字,但我不知道如何转换字节

我尝试了int intValue = byteValue & 0xFF;,但这给了我意想不到的结果,所以我怀疑它是不正确的。或者这是正确的,我误解了本机库函数的预期结果。无论如何都要欣赏确认。

1 个答案:

答案 0 :(得分:0)

在Java中,您可以使用Guava库函数将字节转换为int,将其视为无符号:UnsignedBytes.toInt。因此,如果您将C ++无符号值的值作为字节返回给Java,则可以将其修复。

如果你想把它变成一个int然后把它作为一个int返回给java,那应该是非常简单的。