Seseorang dapat menggunakan Buffers yang disediakan sebagai bagian dari java.niopaket untuk melakukan konversi.
Di sini, byte[]larik sumber memiliki panjang 8, yang merupakan ukuran yang sesuai dengan suatu longnilai.
Pertama, byte[]array dibungkus dalam a ByteBuffer, dan kemudian ByteBuffer.getLongmetode dipanggil untuk mendapatkan longnilai:
ByteBuffer bb = ByteBuffer.wrap(new byte[] {0, 0, 0, 0, 0, 0, 0, 4});
long l = bb.getLong();
System.out.println(l);
Hasil
4
Saya ingin berterima kasih kepada dfa karena menunjukkan ByteBuffer.getLongmetode ini di komentar.
Meskipun mungkin tidak dapat diterapkan dalam situasi ini, keindahan Bufferdatang dengan melihat array dengan banyak nilai.
Misalnya, jika kita memiliki array 8 byte, dan kita ingin melihatnya sebagai dua intnilai, kita bisa membungkus byte[]array dalam ByteBuffer, yang dipandang sebagai a IntBufferdan mendapatkan nilainya dengan IntBuffer.get:
ByteBuffer bb = ByteBuffer.wrap(new byte[] {0, 0, 0, 1, 0, 0, 0, 4});
IntBuffer ib = bb.asIntBuffer();
int i0 = ib.get(0);
int i1 = ib.get(1);
System.out.println(i0);
System.out.println(i1);
Hasil:
1
4