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