2

私はAndroidjniで作業しており、unsigned longlongCデータ型を同等のJNIラッパーに変換したいと考えています。同等のjniラッパーはどうあるべきですか?また、jniラッパーを呼び出すJAVA関数呼び出しを作成する場合、このunsigned long longデータ型のJAVAメソッドパラメーターのデータ型は何である必要がありますか?

4

1 に答える 1

1

Java は unsigned を認識しません。すべての Java 数値プリミティブは署名されています ( Blame Gosling )。符号なし 64 ビット範囲を JNI 経由でトランスポートする必要がある場合 (つまり、[0,2^64]だけでなく[-2^63,2^63-1])、同等の Java ラッパーはなく、値を分解する必要があります (上位 4 バイトと下位 4 バイトのように)。それ以外の場合は、プロセッサ アーキテクチャに関係なく 64 ビットであるため、単純に Java プリミティブlong (JNI jlong​​)を使用できます。

于 2012-06-22T07:43:48.830 に答える