Java 8被廣泛報道具有對無符號整數的庫支持。然而,似乎沒有文章解釋如何使用它以及可能有多少。Java8無符號算術
一些像Integer.CompareUnsigned這樣的函數很容易找到並且似乎按照人們的期望來做。然而,我甚至沒有寫出一個簡單的循環,它在無符號long的範圍內循環遍歷兩個冪。
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
我缺少的東西或者外部庫仍然需要這種簡單的任務?
這很有道理。那麼終止這個循環的正確方法是什麼? –
(Long.compareUnsigned(1,46116860184273879041 * 4)!= 0)似乎有效,但有沒有更明顯的方法? –
@Jannis你只想找到最後一個值'18446744073709551614'? –