Rumah >Java >javaTutorial >Bagaimana dengan Cekap Menukar Integer kepada Array Byte di Jawa?

Bagaimana dengan Cekap Menukar Integer kepada Array Byte di Jawa?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-09 03:09:02758semak imbas

How to Efficiently Convert Integers to Byte Arrays in Java?

Penukaran Integer kepada Tatasusunan Byte yang Cekap dalam Java

Menukar integer kepada tatasusunan bait boleh berguna untuk pelbagai tujuan, seperti rangkaian penghantaran atau penyimpanan data. Terdapat pelbagai pendekatan untuk mencapai penukaran ini.

Kelas ByteBuffer:

Satu kaedah yang cekap ialah menggunakan kelas ByteBuffer. ByteBuffer ialah penimbal yang menyimpan data binari dan menyediakan pelbagai operasi untuk memanipulasinya. Untuk menukar integer kepada tatasusunan bait menggunakan 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

Di sini, susunan bait penimbal memastikan bahawa bait disusun dalam susunan yang betul.

Penukaran Manual :

Sebagai alternatif, anda boleh menukar integer secara manual kepada tatasusunan bait:

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;
}

Pendekatan ini memerlukan peralihan bit dan penugasan yang jelas kepada setiap bait.

Kaedah Helper dalam java.nio.Bits:

Kelas ByteBuffer menggunakan kaedah pembantu dalaman yang ditakrifkan dalam kelas 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); }

Kaedah ini mudahkan operasi peralihan bit yang dinyatakan di atas.

Atas ialah kandungan terperinci Bagaimana dengan Cekap Menukar Integer kepada Array Byte di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn