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
この単純なタスクに何か不足していますか、それとも外部ライブラリがまだ必要ですか?