将本机 uint8_t(Java byte)转换为 int

5
我有一个本地函数(来自库),它对 uint8_t 类型(无符号的 8 位数字 0-255)进行一些处理。Java 最接近的类型是必须带符号的 byte
我该如何将这个 byte 转换为适合在 Java 中使用的正整数?我知道我必须将其存储在 shortint 中,才能正确表示 0-255 的数字,但我不知道如何转换 byte
我尝试了 int intValue = byteValue & 0xFF;, 但结果出乎意料,所以我认为这是不正确的。或者这是正确的,我误解了本地库函数的预期结果。无论哪种情况,都希望得到确认。

1
你尝试的方法是正确的。你应该仔细检查来自本地库的结果,并使用实际结果和期望结果编辑你的问题。 - Jon Skeet
谢谢,现在我只需要这些。我需要深入研究文档和代码,以便找出答案。 - Tenfour04
嗨@Tenfour04,我有和你一样的问题,你想到解决办法了吗?不管怎样,你的尝试似乎给我返回了正确的值。 - elect
1个回答

0
在Java中,您可以使用Guava库函数将字节转换为int,并将其视为无符号:UnsignedBytes.toInt。因此,如果您将C ++无符号值的值作为字节返回到Java,则可以对其进行修复。
如果您想将其转换为int,然后将其作为int返回到Java,那应该非常简单。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接