«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как эффективно конвертировать целые числа в байтовые массивы в Java?

Как эффективно конвертировать целые числа в байтовые массивы в Java?

Опубликовано 15 ноября 2024 г.
Просматривать:492

How to Efficiently Convert Integers to Byte Arrays in Java?

Эффективное преобразование целых чисел в байтовые массивы в Java

Преобразование целого числа в байтовый массив может быть полезно для различных целей, например в сети передачи или хранения данных. Существует несколько подходов к такому преобразованию.

Класс ByteBuffer:

Один эффективный метод — использование класса ByteBuffer. ByteBuffer — это буфер, который хранит двоичные данные и предоставляет различные операции для управления ими. Чтобы преобразовать целое число в массив байтов с помощью ByteBuffer:

ByteBuffer b = ByteBuffer.allocate(4); // Allocate a 4-byte buffer
b.putInt(0xAABBCCDD); // Write the integer value to the buffer

byte[] result = b.array(); // Retrieve the byte array from the buffer

Здесь порядок байтов в буфере гарантирует, что байты расположены в правильном порядке.

Ручное преобразование:

Альтернативно вы можете вручную преобразовать целое число в массив байтов:

byte[] toBytes(int i) {
  // Create a new byte array of length 4
  byte[] result = new byte[4];
  
  // Shift bits and assign to each byte
  result[0] = (byte) (i >> 24);
  result[1] = (byte) (i >> 16);
  result[2] = (byte) (i >> 8);
  result[3] = (byte) i;
  
  return result;
}

Этот подход требует явного сдвига битов и присвоения каждому байту.

Вспомогательные методы в java.nio.Bits:

Класс ByteBuffer использует внутренние вспомогательные методы, определенные в классе java.nio.Bits:

private static byte int3(int x) { return (byte)(x >> 24); }
private static byte int2(int x) { return (byte)(x >> 16); }
private static byte int1(int x) { return (byte)(x >>  8); }
private static byte int0(int x) { return (byte)(x >>  0); }

Эти методы упрощают упомянутые выше операции сдвига битов.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3