ホームページ  >  記事  >  Java  >  Java で整数をバイト配列に、またはその逆に変換するにはどうすればよいでしょうか?

Java で整数をバイト配列に、またはその逆に変換するにはどうすればよいでしょうか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-26 16:37:30404ブラウズ

How do you convert integers to byte arrays and vice versa in Java?

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

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