Преобразование целых чисел в бинарные Java с нулевым заполнением

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Если вам нужно составить 32-битное двоичное представление числа с оглавляющими нулями, использовать можно метод String.format():

Java
Скопировать код
int number = 42; // ведь 42 – это олицетворение вселенной и нашей жизни
String binaryString = String.format("%032d", Long.parseLong(Integer.toBinaryString(number)));
System.out.println(binaryString); // Результат: "00000000000000000000000000101010"

Где 32 — это общее количество символов, которое вы стремитесь получить, так что заместо 32 вы можете подставить любое другое число.

Кинга Идем в IT: пошаговый план для смены профессии

"Когда" и "почему" стоит применять другие методы

Хоть и String.format() идеально подходит для получения строки заданной длины, существуют и другие подходы со своими особенностями.

При работе с отрицательными числами удобно использовать комбинацию операций | и <<:

Java
Скопировать код
int len = 16;
int val = -42;
String formattedBinary = Integer.toBinaryString((1 << len) | val).substring(1);
System.out.println(formattedBinary); // Результат: "1111111111101010"

Когда эффективность добавления нулей играет важную роль, возьмите StringUtils.leftPad() из Apache Commons Lang:

Java
Скопировать код
String binaryString = Integer.toBinaryString(42);
String paddedBinary = StringUtils.leftPad(binaryString, 16, '0');
System.out.println(paddedBinary); // Результат: "00000000101010"

Если вы предпочитаете не использовать сторонние библиотеки, создайте свой метод заполнения, используя для этого циклы или Arrays.fill():

Java
Скопировать код
char[] paddingArray = new char[42];
Arrays.fill(paddingArray, '0');
System.arraycopy(Integer.toBinaryString(42).toCharArray(), 0, paddingArray, 42 – Integer.toBinaryString(42).length(), Integer.toBinaryString(42).length());
String paddedBinary = new String(paddingArray);
System.out.println(paddedBinary); // Результат: "00000000000000000000000000101010"

Помните о необходимости проверять длину исходной строки, чтобы предотвратить получение строки большей длины, чем требуется.

Визуализация

Визуализация процесса облегчает понимание в кодировании, давайте взглянем:

Markdown
Скопировать код
Десятичное представление: **42**
Java
Скопировать код
int num = 42;
String binaryString = String.format("%8s", Integer.toBinaryString(num)).replace(' ', '0');
Markdown
Скопировать код
Двоичное представление числа **42**: "00101010"
Markdown
Скопировать код
Разъяснение двоичного представления:

- Исходное число в двоичной форме: `101010`
- Стремимся к длине: 8 бит
- Результат добавления нулей: `00101010`

Так выглядит "Жизнь, Вселенная и Все Остальное" в виде 8-битного числа.

Повышаем компетенции в работе с побитовыми операциями

Побитовые операции — это мощный инструмент для выполнения нестандартных задач.

Желаете работать с отрицательными числами? Примените выражение (1 << len) | (val & ((1 << len) – 1)), чтобы сохранить корректный знак числа.

Операция маскирования (val & ((1 << len) – 1)) обрезает число до нужной длины, пропуская лишь len бит.

Для работы с динамической длиной просто сдвиньте 1 на len бит влево, формируя строку из единиц, и вы будете готовы к техникам заполнения.

Полезные материалы

  1. Integer (Java Platform SE 7) – официальная документация Oracle по методу toBinaryString.
  2. java – Как разместить нули перед целым числом? – Stack Overflow – обсуждение методов дополнения двоичных чисел нулями.
  3. Formatter (Java Platform SE 7) – документация по применению класса Formatter в Java.
  4. Java Integer toBinaryString() method with Examples – Javatpoint – примеры применения метода toBinaryString.
  5. Примеры форматирования строк в Java: Издание 2021 – DZone – подробное руководство по форматированию строк в Java.