Для перетворення можна використовувати Buffer
s, які надаються як частина java.nio
пакету.
Тут вихідний byte[]
масив має довжину 8, тобто розмір, що відповідає long
значенню.
Спочатку byte[]
масив загортається в a ByteBuffer
, а потім ByteBuffer.getLong
викликається метод для отримання long
значення:
ByteBuffer bb = ByteBuffer.wrap(new byte[] {0, 0, 0, 0, 0, 0, 0, 4});
long l = bb.getLong();
System.out.println(l);
Результат
4
Я хотів би подякувати dfa за вказівку на ByteBuffer.getLong
метод у коментарях.
Незважаючи на те, що це може бути не застосовним у цій ситуації, краса Buffer
s полягає у перегляді масиву з кількома значеннями.
Наприклад, якщо у нас був 8-байтовий масив, і ми хотіли розглянути його як два int
значення, ми могли б обернути byte[]
масив в an ByteBuffer
, який розглядається як a, IntBuffer
і отримати значення за допомогою 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);
Результат:
1
4