Rumah > Java > javaTutorial > teks badan

Bagaimana untuk Menukar Integer kepada Tatasusunan Byte dalam Java: ByteBuffer lwn. Penukaran Manual?

Barbara Streisand
Lepaskan: 2024-11-08 16:58:01
asal
825 orang telah melayarinya

How to Convert an Integer to a Byte Array in Java: ByteBuffer vs. Manual Conversion?

Cara Menukar Integer kepada Array Byte dengan Cekap dalam Java

Menukar integer kepada tatasusunan bait ialah tugas biasa dalam pengaturcaraan, terutamanya apabila berurusan dengan protokol rangkaian atau data binari yang disimpan. Di Java, terdapat beberapa cara untuk mendekati penukaran ini, masing-masing mempunyai kelebihan tersendiri.

Menggunakan Kelas ByteBuffer

Salah satu kaedah yang paling serba boleh dan cekap ialah dengan gunakan kelas ByteBuffer, yang menyediakan akses peringkat tinggi kepada data binari. Dengan memperuntukkan ByteBuffer dengan saiz yang mencukupi dan menetapkan susunannya kepada big-endian (memastikan bahawa bait paling penting disimpan dahulu), anda boleh menggunakan kaedah putInt() untuk menulis integer ke penimbal. Tatasusunan bait yang terhasil kemudiannya boleh diperoleh menggunakan kaedah tatasusunan().

Contoh Kod:

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();
Salin selepas log masuk

Penukaran Manual

Jika anda lebih suka pendekatan yang lebih manual, anda juga boleh menukar integer kepada tatasusunan bait dengan mengalih dan menutup setiap bait secara individu. Pendekatan ini memberikan lebih kawalan ke atas endian tatasusunan bait yang terhasil.

Contoh Kod:

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;
}
Salin selepas log masuk

Pendekatan Alternatif

Walaupun kaedah penukaran ByteBuffer dan manual biasa digunakan, terdapat juga pilihan lain yang tersedia. Sebagai contoh, perpustakaan Apache Commons Lang menyediakan kelas ByteUtils dengan kaedah pembantu untuk menukar integer kepada tatasusunan bait. Selain itu, perpustakaan khusus untuk protokol rangkaian atau penyirian data mungkin menawarkan fungsi yang dibuat khusus untuk tujuan ini.

Atas ialah kandungan terperinci Bagaimana untuk Menukar Integer kepada Tatasusunan Byte dalam Java: ByteBuffer lwn. Penukaran Manual?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan