Seseorang dapat menggunakan Buffer
s yang disediakan sebagai bagian dari java.nio
paket untuk melakukan konversi.
Di sini, byte[]
larik sumber memiliki panjang 8, yang merupakan ukuran yang sesuai dengan suatu long
nilai.
Pertama, byte[]
array dibungkus dalam a ByteBuffer
, dan kemudian ByteBuffer.getLong
metode dipanggil untuk mendapatkan long
nilai:
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.getLong
metode ini di komentar.
Meskipun mungkin tidak dapat diterapkan dalam situasi ini, keindahan Buffer
datang dengan melihat array dengan banyak nilai.
Misalnya, jika kita memiliki array 8 byte, dan kita ingin melihatnya sebagai dua int
nilai, kita bisa membungkus byte[]
array dalam ByteBuffer
, yang dipandang sebagai a IntBuffer
dan 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