Javaでunsigned intを宣言する 質問する

Javaでunsigned intを宣言する 質問する

Java で unsigned int を宣言する方法はありますか?

あるいは、次のように質問することもできます: Java で unsigned に相当するものは何ですか?

背景を説明すると、私は の Java 実装を調べていましたString.hashcode()。整数が 32 unsigned int の場合に衝突が発生する可能性をテストしたかったのです。

ベストアンサー1

Javaにはデータ型がありません符号なし整数

定義することができますlongint大きな値を保存する必要がある場合は、の代わりに を使用します。

符号付き整数を符号なし整数のように使うこともできます。2の補数表現違いは、ほとんどの演算(加算、減算、乗算、左シフトなど)が符号付き整数と符号なし整数のバイナリレベルで同一であることです。ただし、いくつかの演算(除算、右シフト、比較、キャスト)は異なります。Java SE 8では、Integerintクラスを使用すると、データ型を完全に使用できます符号なし演算を実行する:

Java SE 8以降では、intデータ型を使用して、最小値が0、最大値が2^32-1の符号なし32ビット整数を表すことができます。intデータ型を符号なし整数として使用するには、Integerクラスを使用します。次のような静的メソッドは、compareUnsigneddivideUnsigned符号なし整数の算術演算をサポートするために、Integer クラスになどが追加されました。

int変数は宣言時にはまだ符号付きですが、クラス内のメソッドを使用することで符号なし演算が可能になることに注意してくださいInteger

おすすめ記事