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