Java での整数からバイト配列への変換とその逆の変換
バイト配列への数値の格納は、プログラミングの基本的な操作です。整数とバイト配列の間の変換プロセスを理解することは、データを効率的に操作するために不可欠です。
整数からバイト配列へ
整数をバイト配列に変換するには、次を使用できます。 ByteBuffer、java.nio パッケージのクラス。このクラスは、バイナリ データを操作するための便利な方法を提供します。以下に例を示します。
<code class="java">byte[] arr = { 0x00, 0x01 }; // Source byte array short num = 0; ByteBuffer wrapped = ByteBuffer.wrap(arr); // Wraps source array in a buffer wrapped.get(num); // Reads 2 bytes from the buffer and stores in num</code>
このコードは、ソース バイト配列を ByteBuffer にラップし、最初の 2 バイト (0x00 と 0x01) を短整数 (num) に読み取ります。
バイト配列から整数へ
バイト配列を整数に変換するには、同じ ByteBuffer クラスを使用できます。以下に例を示します。
<code class="java">byte[] arr = { 0x00, 0x01 }; ByteBuffer dbuf = ByteBuffer.allocate(2); dbuf.put(arr); // Writes source bytes to the buffer short num = dbuf.getShort(); // Reads 2 bytes from the buffer and stores in num </code>
このコードは、ソース バイト配列を ByteBuffer に書き込み、最初の 2 バイト (0x00 と 0x01) を短整数 (num) に読み取ります。
コードの理解
ByteBuffer クラスを理解するための鍵は、バイト順序 (ビッグ エンディアンまたはリトル エンディアン) を使用して配列内のバイトの配置を決定することです。ビッグ エンディアンは、最上位バイトが配列の先頭に格納されるのに対し、リトル エンディアンはそれを最後に格納することを意味します。
デフォルトでは、ByteBuffer はビッグ エンディアンのバイト オーダーを使用します。操作を実行する前に、wrap.order(ByteOrder.LITTLE_ENDIAN) を呼び出すことで、リトル エンディアン順序を指定できます。
以上がJava で整数をバイト配列に、またはその逆に変換するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。