将unsigned long long转换为等效的jni数据类型?

时间:2012-06-22 06:30:29

标签: android c java-native-interface

我正在使用Android jni,并希望将unsigned long long C数据类型转换为等效的JNI包装器。等效的jni包装器应该是什么?此外,当我将编写将调用jni包装器的JAVA函数调用时,该无符号long long数据类型的JAVA方法参数的dataype应该是什么?

1 个答案:

答案 0 :(得分:1)

Java不知道unsigned。所有Java数字原语都是有符号的(blame Gosling)。如果你真的需要通过JNI传输无符号的64位范围(你需要[0,2^64]不仅[-2^63,2^63-1])那么没有等效的Java包装器,你需要分解这个值(比如uppper four)字节和低四个字节)。否则,无论处理器架构如何,您都可以使用简单的Java原语 long(JNI jlong​​),因为它是64位。

相关问题