0

私は.constファイルを持っています.abc.const(cppファイル)としましょう。そのファイルの内容は、

xyz :ullong:0x1000000000000000ULL yub :ullong:0x010000000000000ULL .... ....

今、私はこのファイルを .java クラスに変換するプログラムを作成しました。

しかし、私が上記を試してみると、

次のエラーが発生しました

abc.java:255: ';' public static final long xyz = 0x1000000000000000ULL が期待されます。

これをどのように解決すればよいですか。前もって感謝します??

(これを解決して、この .const ファイルから .java クラスを生成する必要があります)

4

2 に答える 2

2
  • Javaには符号なしの型がないため、「U」数値リテラル指定子はありません
  • Java では常に 64 ビットの long に単一の L のみを使用します。
  • x の前に 2 つの先頭の 0 があるようです。

したがって、Java は次のようになります。

public static final long xyz = 0x1000000000000000L;

前述のように Java には符号なしの型がないため、これは C++ と完全に同等ではないことに注意してください。より大きい値を表す必要がある場合は、クラスLong.MAX_VALUEを使用する必要があります。BigIntegerの制限された範囲で見つかった場合はlong、プリミティブ型に固執することをお勧めします。

于 2011-04-19T05:29:04.220 に答える
1

に相当する Java はありません。unsigned long long

それほど大きな数が必要な場合は、次のBigIntegerクラスを使用する必要があります。

http://download.oracle.com/javase/6/docs/api/java/math/BigInteger.html

そうは言っても、Java の最大値longは 2^63-1 です。それがあなたにとって十分な大きさである場合は、変更するだけです

0x100000000000000ULL

0x100000000000000L
于 2011-04-19T05:27:32.550 に答える