「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Java で整数をバイト配列に効率的に変換するにはどうすればよいですか?

Java で整数をバイト配列に効率的に変換するにはどうすればよいですか?

2024 年 11 月 15 日に公開
ブラウズ:853

How to Efficiently Convert Integers to Byte Arrays in Java?

Java での整数からバイト配列への効率的な変換

整数からバイト配列への変換は、ネットワークなどのさまざまな目的に役立ちます。送信またはデータストレージ。この変換を実現するには複数の方法があります。

ByteBuffer クラス:

効率的な方法の 1 つは、ByteBuffer クラスを使用することです。 ByteBuffer は、バイナリ データを格納し、それを操作するためのさまざまな操作を提供するバッファです。 ByteBuffer を使用して整数をバイト配列に変換するには:

ByteBuffer b = ByteBuffer.allocate(4); // Allocate a 4-byte buffer
b.putInt(0xAABBCCDD); // Write the integer value to the buffer

byte[] result = b.array(); // Retrieve the byte array from the buffer

ここでは、バッファのバイト順序により、バイトが正しい順序で配置されることが保証されます。

手動変換:

または、整数をバイト配列に手動で変換することもできます:

byte[] toBytes(int i) {
  // Create a new byte array of length 4
  byte[] result = new byte[4];
  
  // Shift bits and assign to each byte
  result[0] = (byte) (i >> 24);
  result[1] = (byte) (i >> 16);
  result[2] = (byte) (i >> 8);
  result[3] = (byte) i;
  
  return result;
}

このアプローチでは、各バイトへの明示的なビット シフトと割り当てが必要です。

java.nio.Bits のヘルパー メソッド:

ByteBuffer クラスjava.nio.Bits クラスで定義された内部ヘルパー メソッドを利用します:

private static byte int3(int x) { return (byte)(x >> 24); }
private static byte int2(int x) { return (byte)(x >> 16); }
private static byte int1(int x) { return (byte)(x >>  8); }
private static byte int0(int x) { return (byte)(x >>  0); }

これらのメソッドは、上記のビットシフト操作を簡素化します。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3