2

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

4

1 回答 1

1

Java 不知道无符号。所有 Java 数字原语都经过签名(责备 Gosling)。如果您确实需要通过 JNI 传输无符号 64 位范围(即您[0,2^64]不仅需要[-2^63,2^63-1]),那么没有等效的 Java 包装器,您将需要分解该值(如上四个字节和下四个字节)。否则,您可以简单地使用 Java 原语long (JNI jlong​​),因为它是 64 位的,无论处理器架构如何。

于 2012-06-22T07:43:48.830 回答