ПРИХОДИТЕ УЧИТЬСЯ НОВОЙ ПРОФЕССИИ ЛЕТОМ СО СКИДКОЙ ДО 70%Забронировать скидку

Конвертация целого числа в бинарную строку в Python

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

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

Для преобразования целого числа в двоичный код в Python можно применить функцию bin():

Python
Скопировать код
print(bin(42))  # Результат: '0b101010'

Чтобы удалить префикс '0b', используется форматирование строк:

Python
Скопировать код
print(format(42, 'b'))  # '101010'
print(f'{42:b}')        # '101010', достоинство f-строк с версии Python 3.6
Пройдите тест и узнайте подходит ли вам сфера IT
Пройти тест

Заглянем глубже: Добавление ведущих нулей

Если требуется двоичное представление фиксированной длины, на помощь приходят ведущие нули:

Python
Скопировать код
print(format(42, '08b'))  # '00101010', эстетически и с нулями

Альтернативный способ с использованием f-строк в Python 3.6 и выше:

Python
Скопировать код
print(f'{42:08b}')  # '00101010', стильно и актуально

Разберем шаблон '08b':

  • '0': Заполнение начинается с нуля.
  • 8: Величина строки должна составлять 8 символов, включая нули.
  • 'b': Показывает на двоичный формат.

Путешествие в прошлое: форматирование в стиле printf

Для тех, кто знаком с более старыми версиями Python или предпочитает классический подход:

Python
Скопировать код
print('%08d' % int(bin(42)[2:]))  # '00101010', словно ретро

Незаметный герой: метод 'zfill'

Метод 'zfill' — отличный способ добавления недостающих нулей:

Python
Скопировать код
binary_str = bin(42)[2:].zfill(8)  # '00101010', ведь нулей никогда не бывает слишком много
print(binary_str)

Установка размера двоичной строки

Необходимый размер двоичной строки определяется конкретной задачей. Устанавливайте его согласно требованиям:

Python
Скопировать код
N = 4
print(format(42, f'0{N}b'))  # '1010': регулируем размер N по своему усмотрению

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

Представим последовательность цифр, учитывая каждую из них:

Целое числоДвоичное преобразованиеСчитаем так:
4242 -> 101010🧮:⚪⚫⚪⚫⚪⚫

Цвет каждой бусины соответствует её значению в двоичном коде:

  • ⚫ = 1
  • ⚪ = 0

Считаем двоичные значения, как будто это бусины на счётах.

Сюрпризы, подводные камни и веселье

Легкость работы с ведущими нулями

Без ведущих нулей двоичное представление может выглядеть неполным:

Python
Скопировать код
num = 1
print(f'{num:08b}')  # '00000001' — такие числа тоже важны

Обработка отрицательных чисел

С отрицательными числами Python приводит нас к представлению в дополнительном коде:

Python
Скопировать код
neg_num = -42
print(f'{neg_num:08b}')  # {Отрицательное двоичное число} — когда жизнь предлагает минус, ищем его дополнение

Следует помнить о контексте и при необходимости обрабатывать знак числа отдельно.

Мир не без границ

Целочисленные переменные в Python могут быть любой длины, но оборудование, базы данных или API могут иметь свои ограничения.

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

  1. Встроенные функции — Документация Python 3.12.2 — официальная документация Python по функции bin().
  2. Stack Overflow – Как перевести целое число в двоичный код в Python — обмен знаниями о преобразовании чисел в двоичный код.
  3. Битовые операторы в Python – Real Python — подробное руководство по битовым операциям на Real Python.
  4. Основы управления битами — Туториалы и заметки на HackerEarth — руководство для совершенствования умений управления битами в области конкурсного программирования.
  5. string — Общие операции со строками — Документация Python 3.12.2 — все, что нужно знать о форматировании строк, чтобы стать мастером работы с двоичными представлениями.
  6. YouTube – Python: Перевод целых чисел в двоичный код (несколько методов) — видеоруководство с объяснением различных способов преобразования целых чисел в двоичный код на Python.

Завершение

Так же, как и Рим, профессиональные навыки строятся не один день. Если мой ответ был вам полезен, поддержите его вашим голосованием и поделитесь немного добра ❤️ Приятного программирования, друзья!👩‍💻