Java で Byte を Int に変換する
バイトデータタイプは 8 ビットの符号付き 2 の補数整数として定義されますが、int データタイプは 32 ビットの符号付き 2 の補数整数として分類できます。メモリに関する懸念がない限り、整数は整数値を格納するために使用されるデフォルトのデータ型です。この記事では、バイトを int データ型に変換する方法について説明します。
ByteWrapper クラスと Java でのキャストを使用して Byte を Int に変換する
バイトはデフォルト値として 0 を保持し、その範囲は-128 =(-2 ^ 7)から 127 =(2 ^ 7 -1)まで変化します。整数はデフォルト値 0 を保持し、その範囲は-2 ^ 31 から 2 ^ 31-1 まで変化します。byte の Wrapper クラスは Byte ですが、int の Wrapper クラスは Integer です。
バイト値がその範囲を超えると、コンパイラーは自動的にそれを int 変数にプロモートします。Java では、符号付き整数型のみがあります(符号なしの概念はありません)。これは、バイトを含むすべての整数プリミティブ型が署名されていることを意味します。ただし、符号なしバイトデータ型の範囲は 0〜255 です。
バイトから整数への変換の要点は、値の符号を保持することです。このコードには、バイト型変数 b
があり、これを int 型変数 i
に変換します。したがって、それはダウンキャストではありません。バイトを int データ型に直接割り当てることができます。
次に、小さいデータ型を大きいデータ型に格納するため、プリミティブ変換を拡張した後、バイトの値を int として返す Wrapper クラスメソッド intValue()
があります。
バイトを符号なしと見なすと、符号なし変換を使用して int に渡された引数を変換する Byte.toUnsignedInt()
メソッドがあります。
public class JavaByteToInt {
public static void main(String args[]) {
byte b = -98;
System.out.println("byte b : = " + b);
int i = b;
System.out.println("int i : " + i);
Byte byt = new Byte(b);
int i1 = byt.intValue();
int i2 = Byte.toUnsignedInt(byt);
System.out.println("int i1 : " + i1);
System.out.println("int i2 : " + i2);
}
}
出力:
byte b : = -98
int i : -98
int i1 : -98
int i2 : 158
バイトから符号なしバイトへの変換の使用
符号なしバイトデータ型の範囲は 0〜255 です。ただし、Java には符号なしバイトはありません。できることは、バイトを int にキャストして符号なしバイトを作成し、新しい int を 0xff
で(ビット単位で)マスクして、最後の 8 ビットを取得するか、符号拡張を防ぐことです。
バイト値を&
演算子とともに使用すると、バイトが自動的に整数にキャストされます。0x000000FF
の 16 進値は 0xFF
として示されます。
public class JavaByteToInt {
public static void main(String args[]) {
byte b = -127;
int i = (b & 0xFF);
System.out.println(i);
}
}
出力:
129
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn