Java でバイト配列を整数に変換する

Siddharth Swami 2023年10月12日
Java でバイト配列を整数に変換する

バイトは、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