Java での符号なし整数の作成
符号付き整数は、-1
から -128
までの正と負の値の範囲としてデータベースに格納されます。それとは反対に、符号なし整数は、0
から 255
までの負の値ではなく、正の範囲値の大きなセットのみを保持します。これは、符号なし整数が負の値を格納できないことを意味します。
Java では、データ型セットに符号なしの int
が明示的に含まれていません。ただし、ユースケースに基づいて、他のデータ型は符号なし整数として扱うことができます。Java は、より大きな符号なし値を格納するための長い
データ型を提供します。
long
データ型は 64 ビットサイズであり、内部で 2 の補数で機能します。Java 8 以降のバージョンでは、long
データ型は 0
から 2^64-1
の範囲の値を格納できます。単純な int
データ型と比較して、より多くのデータ範囲を提供します。
以下は、2つのデータ型のサイズと違いを定義するためのコードブロックです。
public class Main {
public static void main(String[] args) {
System.out.println("Size of int: " + Integer.SIZE + "bits");
System.out.println("Size of int: " + Long.SIZE + "bits");
int signedInt = -2345678;
long unsignedValue = signedInt & 0xffffffffL;
System.out.println(signedInt);
System.out.println(unsignedValue);
}
}
上記のコードブロックでは、最初の 2つのステートメントが Integer
クラスと Long
クラスのサイズを出力します。整数は、int
値を保持するためのプリミティブデータ型です。
int
のサイズは 32 バイトに出力され、Long
ラッパークラスのサイズは 64 バイトに出力されます。クラスには、ラッパークラスのサイズを表す静的変数と最終変数が定義されています。
print ステートメントの横に、2つのローカル変数またはクラス変数が定義されています。変数は int
および long
データ型です。整数でインスタンス化された値は、負の値と正の値の両方を保持するため、負です。
long
変数では、符号付き整数はビット単位の&
演算子で操作されます。これは、2 進形式に変換された数値の 2 の補数で機能します。したがって、内部的には、最初に負の値をバイナリ形式に変換します。2つのバイナリ値の間で、2つの値に対して論理的な&
演算を実行します。演算子は最終的に負の値を正の数に変換します。
上記の 2つのプログラム行の出力を以下に示します。
Size of int: 32bits
Size of int: 64bits
-2345678
4292621618
Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.
LinkedIn