Java8およびJava9で符号なし整数を使用するにはどうすればよいですか?
Oracleの「プリミティブデータ型」ページでは、Java8がunsignedintおよびlongのサポートを追加すると記載されています。 intデフォルトでは、intデータ・タイプは、32ビットの-2最小値を有する2の補数整数、署名され31と2の最大値は31 -1。Java SE 8以降では、intデータ型を使用して、最小値が0、最大値が2 32-1の符号なし32ビット整数を表すことができます。使用Integer使用するクラスをint符号なし整数としてデータ型を。詳細については、「番号クラス」のセクションを参照してください。符号なし整数の算術演算をサポートするためにcompareUnsigned、divideUnsignedなどの静的メソッドがIntegerクラスに追加されました。 long:longデータ型は64ビットの2の補数整数です。署名さはlong-2の最小値を有し、63 2の最大値63を-1。Java SEの8以降では、使用することができlong、符号なし64ビット表現するデータ・タイプをlong0の最小値及び2の最大値を有し、64 -1。intによって提供される値よりも広い値の範囲が必要な場合は、このデータ型を使用します。Longこのクラスはまた、のような方法が含まれcompareUnsigned、divideUnsigned符号なしのための算術演算をサポートするなどlong。 ただし、unsignedlongまたはintegerを宣言する方法が見つかりません。たとえば、次のコードは、範囲内にある必要がある場合(割り当てられた値は正確に2 64 -1)、「リテラルは範囲外です」(もちろんJava 8を使用しています)というコンパイラエラーメッセージを表示します。: public class Foo { static long values = 18446744073709551615L; public static void main(String[] args){ System.out.println(values); } } それで、unsigned intまたはlongを宣言する方法はありますか?