Tuesday, June 13, 2023

Java で整数とバイト配列を変換する方法

Javaで整数をバイト配列に変換し、バイト配列を整数に変換する方法

Javaで整数をバイト配列に変換し、その逆を行う方法について説明します。以下は、これを実現するためのJavaコードです。

整数をバイト配列に変換するコード


public byte[] intToByteArray(int value) {
 byte[] byteArray = new byte[4];
 byteArray[0] = (byte)(value >> 24);
 byteArray[1] = (byte)(value >> 16);
 byteArray[2] = (byte)(value >> 8);
 byteArray[3] = (byte)(value);
 return byteArray;
}

バイト配列を整数に変換するコード


public int byteArrayToInt(byte bytes[]) {
 return ((((int)bytes[0] & 0xff) << 24) |
 (((int)bytes[1] & 0xff) << 16) |
 (((int)bytes[2] & 0xff) << 8) |
 (((int)bytes[3] & 0xff)));
}

このコードはJavaで使用するbig endian方式を使用しています。ただし、x86系でコンパイルされるC言語では、little endian方式に変更する必要があります。つまり、配列のインデックスの順序を0, 1, 2, 3から3, 2, 1, 0に変える必要があります。以下のように修正します。


byteArray[3] = (byte)(value >> 24);
byteArray[2] = (byte)(value >> 16);
byteArray[1] = (byte)(value >> 8);
byteArray[0] = (byte)(value);

関数の使用例

以下は、上記の関数を使用して整数をバイト配列に変換し、バイト配列を整数に変換する例です。


int value = 123456789;
byte[] byteArray = intToByteArray(value);
int newValue = byteArrayToInt(byteArray);

まとめ

この記事では、Javaで整数をバイト配列に変換し、バイト配列を整数に変換する方法について説明しました。この機能は、データをバイト配列として扱う必要がある多くのシナリオ、例えばファイルの読み書きやネットワーク通信などで役立ちます。


0 개의 댓글:

Post a Comment