最佳答案
在 Oracle 的“原始数据类型”呼叫中,它提到 Java8增加了对无符号 int 和 longs 的支持:
int
: 默认情况下,int
数据类型是一个32位有符号二的补数整数,其最小值为 -231,最大值为231-1。使用Integer
类将int
数据类型用作无符号整数。有关更多信息,请参见“数字类”部分。像compareUnsigned
、divideUnsigned
等静态方法已经被添加到Integer
类中,以支持无符号整数的算术运算。
long
:long
数据类型是一个64位2的补数整数。已签名的long
的最小值为 -263,最大值为263-1。当需要比 int 提供的值范围更大的值时,请使用此数据类型。Long
类还包含compareUnsigned
、divideUnsigned
等方法,以支持无符号long
的算术运算。
但是,我找不到声明无符号长度或整数的方法。例如,下面的代码给出了一个编译器错误消息“ The Literal is out of range”(当然,我使用的是 Java 8) ,当它应该在 range (赋值精确地为264-1)时:
public class Foo {
static long values = 18446744073709551615L;
public static void main(String[] args){
System.out.println(values);
}
}
那么,有没有声明无符号 int 或 long 的方法呢?