Python: Целое в Двоичное (Преобразование целого числа в двоичную строку)

В этом учебнике вы узнаете, как использовать Python для преобразования int в бинарный формат, что означает преобразование целого числа в бинарную строку.

Вы узнаете краткий обзор этого преобразования и как бинарные строки представлены в компьютерах. Затем вы узнаете, как использовать четыре разных метода для преобразования int в бинарный формат с помощью Python. Это включает функцию bin(), форматирование строк, f-строки, функцию format(), а также наивную реализацию без использования каких-либо функций.

Содержание

Что такое бинарные строки для целых чисел?

Обычная десятичная система, к которой мы привыкли, использует основание десять, что означает наличие десяти различных символов. Эти символы — числа от 0 до 9, которые позволяют нам создавать все возможные комбинации чисел, с которыми мы знакомы.

Бинарные строки, с другой стороны, используют основание два, что означает наличие только двух чисел для выражения различных чисел. Эти числа либо 0, либо 1. Хотя бинарная система счисления использовалась в различных древних цивилизациях (таких как Египет и Индия), она широко используется в электронике и компьютерных системах в современное время.

В следующих разделах вы узнаете, как использовать Python для преобразования целого числа в бинарный формат с помощью функции bin().

Хотите узнать, как получить расширение файла в Python? Этот учебник научит вас использовать библиотеки os и pathlib для этого!

Использование Python bin для преобразования int в бинарный формат

Функция Python bin() сокращена от binary и позволяет нам преобразовывать целое число в бинарную строку, которая имеет префикс '0b'. В следующих разделах вы узнаете, как преобразовывать целое число в бинарный формат с помощью Python без префикса.

Давайте посмотрим, как мы можем преобразовать положительное целое число в бинарную строку с помощью Python:

# Преобразование целого числа в бинарную строку с помощью Python bin()
positive = 123
binary = bin(positive)
print(binary)

# Возвращает: '0b1111011'

Мы видим, что возвращена бинарная строка с префиксом '0b'.

Давайте проверим тип возвращенного выражения с помощью встроенной функции type():

# Проверка типа нашей бинарной строки
positive = 123
binary = bin(positive)
print(type(binary))

# Возвращает:
# <class 'str'>

Мы видим, что функция вернула строку, как и ожидалось.

Теперь давайте посмотрим, что происходит, когда мы передаем отрицательное целое число и пытаемся использовать Python для его преобразования в бинарную строку:

# Преобразование целого числа в бинарную строку с помощью Python bin()
negative = -123
binary = bin(negative)
print(binary)

# Возвращает: '-0b1111011'

Мы видим, что также есть префикс '-' в нашей строке, указывающий, что число является отрицательным значением.

В следующем разделе вы узнаете, как использовать форматирование строк Python для преобразования int в бинарную строку.

Хотите узнать, как использовать функцию Python zip() для итерации по двум спискам? Этот учебник научит вас точно, что делает функция zip(), и покажет вам несколько креативных способов использования функции.

Использование форматирования строк Python для преобразования int в бинарный формат

Если вы хотите преобразовать целое число Python в бинарную строку без префикса '0b', вы можете использовать форматирование строк.

Форматирование строк Python позволяет нам определять различные типы форматов для передачи значений. В этом случае мы передадим код формата '{0:b}', который позволяет нам преобразовать целое число в бинарный формат.

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

# Преобразование целого числа в бинарную строку с помощью форматирования строк Python
positive = 123
negative = -123

positive_binary = '{0:b}'.format(positive)
negative_binary = '{0:b}'.format(negative)

print(f'{positive_binary=}')
print(f'{negative_binary=}')

# Возвращает:
# positive_binary='1111011'
# negative_binary='-1111011'

Мы видим, что этот метод возвращает те же строки без префикса '0b'.

В следующем разделе вы узнаете, как использовать f-строки Python для преобразования int в бинарную строку.

Использование f-строк Python для преобразования int в бинарный формат

f-строки Python позволяют нам сделать форматирование строк немного более интуитивным. Они также позволяют нам применять форматирование к нашим строкам аналогично традиционному форматированию строк.

Как краткое напоминание об f-строках Python, они были введены в версиях Python 3.6 и выше и создаются путем добавления префикса 'f' или 'F' к строке.

Давайте посмотрим, как мы можем преобразовать целое число в бинарную строку с помощью f-строк Python. Мы попробуем это для тех же положительных и отрицательных целых чисел, что и выше:

# Преобразование целого числа в бинарную строку с помощью f-строк Python
positive = 123
negative = -123

positive_binary = f'{positive:b}'
negative_binary = f'{negative:b}'

print(f'{positive_binary=}')
print(f'{negative_binary=}')

# Возвращает:
# positive_binary='1111011'
# negative_binary='-1111011'

Мы видим, что возвращены те же значения. f-строки Python могут не работать во всех версиях Python, но они интуитивны и легко понимаются.

В следующем разделе вы узнаете, как использовать функцию format() Python для преобразования int в бинарную строку.

Хотите узнать больше об f-строках Python? Ознакомьтесь с моим подробным учебником, который включает пошаговое видео для освоения f-строк Python!

Использование format Python для преобразования int в бинарный формат

Другой способ преобразовать целое число Python в бинарную строку — использовать встроенную функцию format(). Функция format() принимает значение и спецификацию формата в качестве своих аргументов.

Из-за этого мы можем передать значение (в этом случае, целое число) и спецификацию формата (в этом случае 'b'), чтобы указать, что мы хотим вернуть бинарную строку.

Давайте посмотрим, как мы можем это сделать с помощью Python:

# Преобразование целого числа в бинарную строку с помощью Python format()
positive = 123
negative = -123

positive_binary = format(positive, 'b')
negative_binary = format(negative, 'b')

print(positive_binary)
print(negative_binary)

# Возвращает:
# positive_binary='1111011'
# negative_binary='-1111011'

Это также очень читаемый способ, которым мы можем преобразовать целые числа Python в строку. Функция делает ясно, что мы преобразовываем значение во что-то другое, даже указывая тип.

В заключительном разделе вы узнаете, как преобразовать int в бинарную строку с нуля.

Хотите узнать, как вычислить и использовать натуральный логарифм в Python? Ознакомьтесь с моим учебником здесь, который научит вас всему, что вам нужно знать о том, как его вычислить в Python.

Преобразование int в бинарный формат в Python без функции

В этом заключительном разделе вы узнаете, как создать наивный метод для преобразования целого числа Python в строку. Вы фактически создадите пользовательскую функцию, которая делает это, но сможете понять, как работает это преобразование.

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

# Преобразование целого числа в бинарную строку с помощью пользовательской функции
def int_to_binary(integer):
    binary_string = ''
    while(integer > 0):
        digit = integer % 2
        binary_string += str(digit)
        integer = integer // 2
    binary_string = binary_string[::-1]
    return binary_string

print(int_to_binary(123))

# Возвращает:
# 1111011

Заключение

В этом учебнике вы узнали, как использовать Python для преобразования int в бинарный формат, что означает преобразование целых чисел в бинарные строки. Вы узнали, как это сделать с помощью нескольких разных методов, включая использование функции Python bin(), форматирования строк, f-строк, функции format() и без каких-либо функций вообще.

Если вы хотите узнать больше о функции Python bin(), ознакомьтесь с официальной документацией здесь. Чтобы узнать больше о функции Python format(), вы можете найти официальную документацию здесь.

Last updated