Java相当于unsigned long long?
-
21-08-2019 - |
题
在 C++ 中,我喜欢通过以下方式访问 64 位无符号整数: unsigned long long int
, ,或通过 uint64_t
. 。现在,我知道 Java 中的 long 是 64 位。然而,他们已经签署了。
是否有 unsigned long(长整型)可用作 Java 原语?我该如何使用它?
解决方案
我不这么认为。当你想要比签订长期去做大,我觉得的BigInteger 是唯一的(开箱)的路要走。
其他提示
启动的Java 8,存在一种用于无符号长(无符号64个比特)的支持。你可以使用它的方式是:
Long l1 = Long.parseUnsignedLong("17916881237904312345");
要打印出来,你不能简单地打印L1,但你必须先:
String l1Str = Long.toUnsignedString(l1)
然后
System.out.println(l1Str);
不,不存在。你将不得不使用原始long
数据类型和处理的符号性问题,或使用一个类如的 BigInteger
。
没有,没有。的Java的设计者是有记录的话说,他们不喜欢无符号整数。使用的BigInteger 代替。请参阅这个问题获得的信息。
根据所要执行的操作,结果是大致相同的,带符号。然而,除非使用的是微不足道的操作时,将会最终使用的BigInteger。
Java没有无符号类型。如已经提到的,incure BigInteger的开销或使用JNI访问本地代码。
在org.apache.axis.types封装具有
UnsignedLong类。
对于行家:
<dependency>
<groupId>org.apache.axis</groupId>
<artifactId>axis</artifactId>
<version>1.4</version>
</dependency>
好像在Java中8 一些方法添加以长期治疗老好[签字]只要无符号。似乎是一个解决办法,但有时可能会有所帮助。
不隶属于 StackOverflow