0

我有一个 .const 文件,可以说 abc.const (一个 cpp 文件)。该文件的内容是,

xyz :ullong:0x1000000000000000ULL yub :ullong:0x0100000000000000ULL ....

现在我有一个程序可以将此文件转换为 .java 类。

但是当我在上面尝试时,

我收到以下错误

abc.java:255: ';' 预期的公共静态最终长 xyz = 0x1000000000000000ULL;

我应该如何解决这个问题。提前致谢??

(我需要通过解决这个问题从这个 .const 文件生成一个 .java 类)

4

2 回答 2

2
  • Java 中没有无符号类型,因此没有“U”数字文字说明符
  • 在 Java 中只使用一个 L 表示 long,它始终是 64 位
  • 您似乎在 x 之前有两个前导 0。

所以Java将是:

public static final long xyz = 0x1000000000000000L;

请注意,这不会完全等同于 C++,因为 Java 没有前面提到的无符号类型。如果您需要表示大于 的值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 回答