Rumah > Java > javaTutorial > teks badan

Bagaimana untuk Menukar Array Byte kepada Long di Jawa?

Barbara Streisand
Lepaskan: 2024-11-05 18:11:02
asal
302 orang telah melayarinya

How to Convert a Byte Array to a Long in Java?

Array Byte ke Penukaran Panjang dalam Java: Panduan Komprehensif

Menukar antara jenis data panjang dan tatasusunan bait ialah tugas asas dalam pengaturcaraan Java , terutamanya apabila bertukar-tukar data melalui rangkaian atau menyimpannya dalam format binari. Artikel ini menggariskan pelbagai kaedah untuk melaksanakan penukaran ini dengan berkesan.

Penukaran Tatasusunan Panjang ke Bait

Untuk menukar nilai panjang kepada tatasusunan bait, anda boleh menggunakan yang berikut approach:

<code class="java">public byte[] longToBytes(long x) {
    ByteBuffer buffer = ByteBuffer.allocate(Long.BYTES);
    buffer.putLong(x);
    return buffer.array();
}</code>
Salin selepas log masuk

Dalam kod ini, objek ByteBuffer diperuntukkan dengan saiz yang sama dengan bilangan bait yang diperlukan untuk mewakili nilai yang panjang. Kaedah putLong digunakan untuk menulis nilai panjang ke dalam penimbal, dan akhirnya, kaedah tatasusunan mendapatkan semula perwakilan tatasusunan bait yang mendasari.

Penukaran Tatasusunan Byte kepada Penukaran Panjang

Untuk melakukan penukaran terbalik, anda boleh menggunakan kod berikut:

<code class="java">public long bytesToLong(byte[] bytes) {
    ByteBuffer buffer = ByteBuffer.allocate(Long.BYTES);
    buffer.put(bytes);
    buffer.flip(); // Flip the buffer to make it ready for reading
    return buffer.getLong();
}</code>
Salin selepas log masuk

Di sini, objek ByteBuffer digunakan sekali lagi, kali ini untuk membungkus tatasusunan bait yang disediakan. Kaedah put digunakan untuk menyalin bait ke dalam buffer, diikuti dengan membalikkan buffer untuk menunjukkan bahawa ia kini sedia untuk dibaca. Akhir sekali, kaedah getLong mendapatkan semula nilai panjang daripada penimbal.

Mengelakkan Penciptaan ByteBuffer Berulang

Untuk senario di mana berbilang penukaran akan dilakukan, adalah lebih cekap untuk mengelak daripada membuat objek ByteBuffer baharu untuk setiap penukaran. Ini boleh dicapai dengan membungkus proses dalam kelas:

<code class="java">public class ByteUtils {
    private static ByteBuffer buffer = ByteBuffer.allocate(Long.BYTES);

    public static byte[] longToBytes(long x) {
        buffer.putLong(0, x);
        return buffer.array();
    }

    public static long bytesToLong(byte[] bytes) {
        buffer.put(bytes, 0, bytes.length);
        buffer.flip();
        return buffer.getLong();
    }
}</code>
Salin selepas log masuk

Dalam kes ini, satu objek ByteBuffer dikongsi merentas semua penukaran, meminimumkan overhed penciptaan objek.

Kesimpulan

Kaedah yang diterangkan dalam artikel ini menyediakan cara yang cekap dan boleh dipercayai untuk menukar antara nilai panjang dan tatasusunan bait dalam Java. Sama ada anda memilih pendekatan directByteBuffer atau menggunakan pembungkus ByteUtils, anda boleh mengendalikan penukaran ini dalam aplikasi anda dengan yakin.

Atas ialah kandungan terperinci Bagaimana untuk Menukar Array Byte kepada Long di Jawa?. 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!