ホームページ >Java >&#&チュートリアル >Java で整数をバイト配列に変換する方法: ByteBuffer と手動変換?

Java で整数をバイト配列に変換する方法: ByteBuffer と手動変換?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-08 16:58:01864ブラウズ

How to Convert an Integer to a Byte Array in Java: ByteBuffer vs. Manual Conversion?

Java で整数をバイト配列に効率的に変換する方法

整数をバイト配列に変換することは、プログラミングにおける一般的なタスクです。特にネットワーク プロトコルや保存されたバイナリ データを扱う場合に重要です。 Java では、この変換に取り組む方法がいくつかあり、それぞれに独自の利点があります。

ByteBuffer クラスの使用

最も多用途で効率的な方法の 1 つは、次のとおりです。 ByteBuffer クラスを使用すると、バイナリ データへの高レベルのアクセスが可能になります。十分なサイズの ByteBuffer を割り当て、その順序をビッグエンディアンに設定する (最上位バイトが最初に格納されるようにする) ことにより、putInt() メソッドを使用して整数をバッファーに書き込むことができます。結果のバイト配列は、array() メソッドを使用して取得できます。

コード例:

ByteBuffer b = ByteBuffer.allocate(4);
//b.order(ByteOrder.BIG_ENDIAN); // optional, the initial order of a byte buffer is always BIG_ENDIAN.
b.putInt(0xAABBCCDD);

byte[] result = b.array();

手動変換

より手動のアプローチを希望する場合は、それぞれをシフトおよびマスクすることで、整数をバイト配列に変換することもできます。個別にバイトします。このアプローチにより、結果のバイト配列のエンディアンをより詳細に制御できます。

コード例:

byte[] toBytes(int i)
{
  byte[] result = new byte[4];

  result[0] = (byte) (i >>> 24);
  result[1] = (byte) (i >>> 16);
  result[2] = (byte) (i >>> 8);
  result[3] = (byte) (i /*>>> 0*/);

  return result;
}

代替アプローチ

ByteBuffer と手動変換方法が一般的に使用されますが、他のオプションも利用できます。たとえば、Apache Commons Lang ライブラリは、整数をバイト配列に変換するためのヘルパー メソッドを備えた ByteUtils クラスを提供します。さらに、ネットワーク プロトコルまたはデータのシリアル化用の特定のライブラリが、この目的のためにカスタマイズされた関数を提供する場合があります。

以上がJava で整数をバイト配列に変換する方法: ByteBuffer と手動変換?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。