Как преобразовать число из двоичного в десятичное в Python

Хотите узнать, как преобразовать число из двоичного в десятичное в Python? Вы попали по адресу.

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

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

Давайте начнем преобразование!

Как преобразовать двоичное число в десятичное в Python

Как вы знаете, в двоичной системе счисления есть только два числа — 0 и 1.

Итак, как можно преобразовать двоичное число в десятичное с помощью Python?

Возьмем, к примеру, двоичное число 1010…

Чтобы указать двоичное число в Python, необходимо использовать префикс 0b. Например, двоичное число 1010 можно записать как 0b1010.

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

>>> number = 0b1010

И вот что интересно…

Вот что вы получите, если распечатаете это число.

>>> number
10

Даже если мы указали двоичное значение, Python сохранил это число как десятичное значение.

Также…

Для преобразования двоичных чисел в их десятичное представление в Python имеется встроенная функция int().

>>> int(0b1010)
10

Как преобразовать десятичное число в двоичное в Python

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

Для вывода числа в двоичном формате в Python предусмотрена встроенная функция bin().

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

>>> number = 10
>>> bin(number)
'0b1010'

И вуаля!

Это означает, что…

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

Как вычислить сумму двух двоичных чисел в Python

Чтобы вычислить сумму двух двоичных чисел в Python, мы сначала указываем два числа, начиная с 0b. Затем мы можем использовать оператор +, как обычно, для вычисления суммы двух чисел. Наконец, мы возвращаем сумму двух чисел в двоичном формате, используя встроенную функцию bin().

Вот пример:

>>> number1 = 0b1010
>>> number2 = 0b1010
>>> sum = number1+number2
>>> sum
20
>>> bin(sum)
'0b10100'

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

Давайте подтвердим, что результат правильный:

10100 = 2^2+2^4 = 4+16 = 20

Двоичное число 10100 равно 2 в степени 2 плюс 2 в степени 4.

Как преобразовать двоичную строку в десятичное число

Ранее мы видели, что при указании двоичного числа Python автоматически сохраняет его как десятичное.

Вы также можете встретить программы на Python, в которых двоичные числа представлены с помощью строки, как в примере ниже:

>>> number = "0b1010"
>>> number
'0b1010'

Как преобразовать двоичную строку в десятичный эквивалент?

Давайте попробуем использовать функцию int():

>>> int(number)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '0b1010'

Хм… что вызывает эту ошибку?

Python не может понять значение «0b1010», поскольку предполагает, что это десятичное число (см. «основание 10» в ошибке).

Функция int() позволяет передавать в качестве второго аргумента основание числа. В данном случае основание равно 2, учитывая, что мы работаем с двоичным числом.

>>> int(number, 2)
10

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

Функция преобразования двоичного числа в десятичное

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

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

def convert_binary_to_decimal(bin_num):
    return int(bin_num, 2)

Эта функция принимает в качестве входных данных двоичное число и возвращает его десятичное значение с помощью функции int().

Вот как можно вызвать эту функцию:

number = "0b1011"
print(convert_binary_to_decimal(number))

[output]
11

Вы можете улучшить эту программу Python, используя функцию input() и вернуть результат пользователю с помощью метода строки format().

number = input("Please insert a binary number: ")
print("The decimal value for binary number {} is {}".format(number, convert_binary_to_decimal(number)))

Выполните программу и предоставьте двоичный ввод:

Please insert a binary number: 0b1100110
The decimal value for binary number 0b1100110 is 102

Оно работает!

Заключение

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

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

Теперь пришло время использовать полученные знания в своих программах на Python!

Автор

Фото аватара

Владимир Михайлов

Программист на Python с большим количеством опыта и разнообразных проектов.