Người ta có thể sử dụng các Buffers được cung cấp như một phần của java.niogói để thực hiện chuyển đổi.
Ở đây, byte[]mảng nguồn có độ dài 8, là kích thước tương ứng với một longgiá trị.
Đầu tiên, byte[]mảng được bao bọc trong a ByteBuffer, và sau đó ByteBuffer.getLongphương thức được gọi để nhận longgiá trị:
ByteBuffer bb = ByteBuffer.wrap(new byte[] {0, 0, 0, 0, 0, 0, 0, 4});
long l = bb.getLong();
System.out.println(l);
Kết quả
4
Tôi muốn cảm ơn dfa vì đã chỉ ra ByteBuffer.getLongphương pháp trong các bình luận.
Mặc dù nó có thể không áp dụng được trong tình huống này, nhưng vẻ đẹp của các Buffers đi kèm với việc xem xét một mảng có nhiều giá trị.
Ví dụ: nếu chúng ta có một mảng 8 byte và chúng ta muốn xem nó dưới dạng hai intgiá trị, chúng ta có thể bao bọc byte[]mảng trong một ByteBuffer, được xem là a IntBuffervà nhận các giá trị bằng cách 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);
Kết quả:
1
4