9

私はこれをグーグルに最善を尽くしましたが、型変換を示す表のような形式で明確な答えを見つけることができませんでした。

これらのタイプを変換したいのは、AndroidNDKを使用してネイティブコードから関数を呼び出すためです。問題は、ネイティブコードがJavaには存在しないさまざまなタイプを呼び出すことです。

私は実際にCの経験がなく、コードをすばやく調べて、これらのいくつかのタイプを見つけました。この投稿を編集して、変換するさまざまなタイプを追加してください。

From C to Java

long ->

short ->

char ->

unsigned long ->

unsigned short ->

unsigned char ->

byte ->

Int8 ->

Int16 ->

Int32 ->

UInt8 ->

UInt16 ->

UInt32 ->

また、これらのいずれかがJavaタイプに変換できない場合は、その理由を説明してください。

4

2 に答える 2

7

これらは同等です。Javaのプリミティブデータ型のサイズは常に同じですが、Cのデータ型のサイズは、@ millimooseで示されているように、ある程度コンパイラおよびアーキテクチャ固有です。コメント。

また、charデータ型は「基本文字セットを含むことができるマシンのアドレス可能な最小単位。整数型です。実際の型は、実装に応じて符号付きまたは符号なしのいずれかになります」と定義されていますが、Javaでは単一です 16ビットUnicode文字。

long -> long
short -> short
char -> char
unsigned long -> N/A
unsigned short -> N/A
unsigned char -> N/A
byte -> byte
Int8 -> byte
Int16 -> short
Int32 -> int
UInt8 -> N/A
UInt16 -> N/A
UInt32 -> N/A

Javaには、符号なしのプリミティブデータ型はありません。このbyteタイプは、8ビット、int32ビット、short16ビット、およびlong64ビットを使用します。

これは、Javaチュートリアルの関連セクションへのリンクであり、Java言語仕様のセクション§4.2でより詳細な説明があります。

于 2012-07-18T14:01:03.330 に答える
-1

クラスをインポートする必要があります

クラスUInt32

java.lang.Object

そして、Uint32とUint16を簡単に使用できます

于 2016-06-27T14:42:14.930 に答える