C++中的unsigned char对应java中的哪个类型?使用jni时,如何在在java中向c++传入一个unsigned char 类型
2个回答
展开全部
java中没有不带符号的类型。
而且java里面char型是两个字节。和c++的char类型对应的,应该是byte型。
好在c++ 里的char 值可以用整型来表示。jni调用的话相应也就比较麻烦了。
先转化成byte,如果真的是char类型,一般来说问题不大。
因为取值的时候,都是0~127之间,无符号的范围虽然不一样,但是字符基本上用不到127以上的。
如果实在不行的话,就按位计算一下吧。
比较笨的方法,也可以把byte拆成二进制,去掉符号位自己加上。。。
而且java里面char型是两个字节。和c++的char类型对应的,应该是byte型。
好在c++ 里的char 值可以用整型来表示。jni调用的话相应也就比较麻烦了。
先转化成byte,如果真的是char类型,一般来说问题不大。
因为取值的时候,都是0~127之间,无符号的范围虽然不一样,但是字符基本上用不到127以上的。
如果实在不行的话,就按位计算一下吧。
比较笨的方法,也可以把byte拆成二进制,去掉符号位自己加上。。。
追问
那和unsigned char 对应的呢?或者是java哪一个数据类型可以转化为unsigned char类型使用?
追答
C++里的char 应该是八位,一个字节
对应java里的byte一个字节。
带不带符号,都是八位。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询