Java でバイト配列を整数に変換する
Siddharth Swami
2022年1月22日
2021年6月29日

バイトは、Java のプリミティブデータ型に分類されます。Java のバイト配列は、バイトを含む配列であり、バイナリデータのコレクションを格納します。整数データ型は、Java の整数を表します。バイナリデータは整数形式に変換できるため、バイトと整数は密接に関連しています。
この記事では、Java でバイト配列を整数型に変換します。
Java の java.nio
パッケージにある ByteBuffer
クラスは、バイト配列を整数に変換するメソッドを提供します。
以下のコードを参照してください。
import java.nio.ByteBuffer;
public class Test {
public static void main(String[] args) {
byte [] bytes = { 0x00,0x01,0x03,0x10 };
System.out.println(ByteBuffer.wrap(bytes).getInt()+" ");
}
}
出力:
66320
上記のコードでは、指定された長さのバイト配列の Bytebuffer
を作成し、その後、そこから次の 4 バイトを整数型として読み取ります。ByteBuffer
メソッドはバイト配列をバッファーにラップし、getInt()
関数はクラス内の次の 4 バイトを整数として読み取ります。
以下に、ByteBuffer
クラスの別の例を示します。以下のコードでは、メモリを 2つだけ割り当てます。メソッドによって実行される機能は、前の機能と同じです。ここでは、2つの異なる出力が得られることがわかるように、各バイトを個別に変換します。
以下のコードを参照してください。
import java.nio.*;
class Byte_Array_To_Int {
static void byte_To_Int(byte ar[]) {
ByteBuffer wrapped = ByteBuffer.wrap(ar); // big-endian by default
short num = wrapped.getShort();
ByteBuffer dbuf = ByteBuffer.allocate(2);//allocates the memory by 2.
dbuf.putShort(num);
byte[] bytes = dbuf.array();
for(int i=0;i< bytes.length;i++) {// loop for printing the elements.
System.out.println(bytes[i]);
}
}
public static void main(String[] args){
byte[] b = {0x03, 0x04};// byte type array.
byte_To_Int(b);
}
出力:
3
4
ByteBuffer.wrap()
は配列をバッファにラップします。デフォルトでは、ビッグエンディアンの 0x00 タイプの形式でデータを保存します。出力には、2つの異なる整数があることに注意してください。前に説明したように、このコードは配列に存在する各要素を受け取り、それに応じて変換します。
関連記事 - Java Array
- Java で 16 進文字列のバイト配列を変換する方法
- Java で 2つの配列を連結する方法
- Java の配列から重複を削除する
- Java で配列を比較する
- Java の連想配列
- Java で配列をスライスする