Хотите узнать, как преобразовать число из двоичного в десятичное в 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!