Java には「unsigned long」型がないことは明らかですが、long を使用して unsigned データを格納できます。次に、それを文字列に変換するか、「署名なし」で印刷するにはどうすればよいですか?
質問する
5817 次
4 に答える
13
残念ながら BigInteger を使用するか、独自のルーチンを作成する必要があります。
これらの回避策に役立つUnsignedクラスを次に示します。
private static final BigInteger BI_2_64 = BigInteger.ONE.shiftLeft(64);
public static String asString(long l) {
return l >= 0 ? String.valueOf(l) : toBigInteger(l).toString();
}
public static BigInteger toBigInteger(long l) {
final BigInteger bi = BigInteger.valueOf(l);
return l >= 0 ? bi : bi.add(BI_2_64);
}
于 2013-08-13T08:33:51.627 に答える
10
SOに関する別の質問で述べたように、Java 8から始まる方法があります:
System.out.println(Long.toUnsignedString(Long.MAX_VALUE)); // 9223372036854775807
System.out.println(Long.toUnsignedString(Long.MIN_VALUE)); // 9223372036854775808
于 2015-08-13T14:05:11.857 に答える