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 サイトの他の関連記事を参照してください。