如何在Java 8和Java 9中使用无符号整数?
在Oracle“原始数据类型”页面中,它提到Java 8添加了对无符号int和long的支持: int:默认情况下,int数据类型是32位带符号的二进制补码整数,其最小值为-2 31,最大值为2 31 -1。在Java SE 8和更高版本中,可以使用int数据类型表示无符号的32位整数,其最小值为0,最大值为2 32 -1。使用Integer该类可将int数据类型用作无符号整数。有关更多信息,请参见“数字类”部分。像静态方法compareUnsigned,divideUnsigned等已被添加到Integer类,以支持算术运算的无符号整数。 long:long数据类型是64位二进制补码整数。带符号long的最小值为-2 63,最大值为2 63 -1。在Java SE 8和更高版本中,可以使用long数据类型表示无符号的64位long,其最小值为0,最大值为2 64 -1。当您需要一个比int提供的值宽的值范围时,请使用此数据类型。该Long班还包含方法,如compareUnsigned,divideUnsigned等支持算术运算的无符号long。 但是,我发现没有办法声明无符号的long或integer。例如,以下代码在应该在范围内时(给出的值恰好是2 64 -1)给出了“文字超出范围”的编译器错误消息(我使用的是Java 8 )。 : public class Foo { static long values = 18446744073709551615L; public static void main(String[] args){ System.out.println(values); } } 那么,有什么方法可以声明一个无符号的int或long?