将 .const 文件 (c++) 转换为 .java 类时出现问题

发布于 2024-11-02 08:11:52 字数 356 浏览 1 评论 0 原文

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

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

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

但是当我尝试上面时,

我收到以下错误

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

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

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

I have a .const file, lets say abc.const (a cpp file). the contents of that file is,

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

now i ve a program to convert this file to .java class.

But when i try above,

i got the following error

abc.java:255: ';' expected
public static final long xyz = 0x1000000000000000ULL;

how should i resolve this.
thanks in advance??

( i need to generate a .java class from this .const file by solving this )

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

鯉魚旗 2024-11-09 08:11:52
  • Java 中没有无符号类型,因此没有“U”数字文字说明符
  • Java 中的 long 只使用单个 L,它始终是 64 位
  • x 之前似乎有两个前导 0。

所以 Java 会是:

public static final long xyz = 0x1000000000000000L;

请注意,这不会与 C++ 完全相同,因为 Java 没有前面提到的无符号类型。如果您需要表示大于 Long.MAX_VALUE 的值,则应使用 BigInteger 类。如果您发现 long 的范围受到限制,那么最好坚持使用原始类型。

  • There are no unsigned types in Java, so there's no "U" numeric literal specifier
  • You only use a single L for a long in Java, which is always 64 bits
  • You appear to have two leading 0s before the x.

So the Java would be:

public static final long xyz = 0x1000000000000000L;

Note that this won't be an exact equivalent of the C++, due to Java not having unsigned types as mentioned before. If you need to represent values larger than Long.MAX_VALUE, you should use the BigInteger class. If you're find with the restricted range of long, you're better off sticking with the primitive type.

人心善变 2024-11-09 08:11:52

Java 中没有相当于 unsigned long long 的东西。

如果您需要这么大的数字,则必须使用 BigInteger 类:

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

也就是说,java long<的最大值/代码> 是 2^63-1。如果这对你来说足够大,只需更改

0x100000000000000ULL

0x100000000000000L

There is no Java equivalent to an unsigned long long

If you need a number that large, you're going to have to use the BigInteger class:

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

That being said, the max value for a java long is 2^63-1. If that's big enough for you just change

0x100000000000000ULL

to

0x100000000000000L
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文