据广泛报道,Java 8 具有对无符号整数的库支持。但是,似乎没有文章解释如何使用它以及有多少是可能的。
像 Integer.CompareUnsigned 之类的一些函数很容易找到,并且似乎可以满足人们的期望。但是,我什至无法编写一个简单的循环来循环 unsigned long 范围内的所有 2 的幂。
int i = 0;
for(long l=1; (Long.compareUnsigned(l, Long.MAX_VALUE*2) < 0) && i<100; l+=l) {
System.out.println(l);
i++;
}
产生输出
1
2
4
8
...
1152921504606846976
2305843009213693952
4611686018427387904
-9223372036854775808
0
0
0
...
0
我是否遗漏了什么,或者这个简单的任务仍然需要外部库?