我有一个C++函数在我的DLL中,需要一个uint8_t数组作为输入参数,所以该数组看起来像这样:
uint8_t input[input_length] = { 0x30, 0x41, 0x80, 0x8A...};
我希望在Java中使用JNA调用此函数,这意味着我需要在Java中创建一个uint8_t数组。我的第一种方法是创建一个字节数组:
byte[] input = { 0x30, 0x41, 0x80, 0x8A...};
然后我意识到,在C ++中,uint8_t变量的范围为0..255,但Java中的byte变量的范围为-128..127。正如您所看到的,此数组包含超过127的值(如0x8A),这意味着我的Java声明在这里无效。因此,我的问题是:Java中的哪种类型相当于uint8_t?
java.lang.Byte
有一些方法可以将字节视为无符号值。 - Shawn