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

Convert native uint8_t (Java byte) into an int

本文关键字:字节 转换 整数 Java 本机 uint8      更新时间:2023-10-16

我有一个本机函数(来自库),它可以对uint8_t类型(无符号 8 位数字 0-255)执行一些工作。Java最接近的东西是必须签名的字节。

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

我尝试了int intValue = byteValue & 0xFF;,但这给了我意想不到的结果,所以我怀疑这是不正确的。或者这是正确的,我误解了本机库函数的预期结果。无论哪种方式,都将不胜感激。

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

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