/
Вопросы и ответы
/
Python
/

Какая функция нужна для перевода в десятичную систему в Python?

Какая функция нужна для перевода в десятичную систему в Python?

4 года назад

Andrey Moshkov

Ответы

1

Для этого можно воспользоваться стандартной функцией int.

Если у вас число бинарный литерал, например 0b111, то можно перевести в десятичную систему просто вызвав int(0b111).

Если у вас число строковой литерал, например "111", то можно вызвать эту функцию передав именованный аргумент base: int("111", base=2).

4 года назад

Maruf Karaev

0

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

Пример:

binary_number = "1010"
decimal_number = int(binary_number, 2)
print(decimal_number)
# Вывод: 10

2 года назад

Elena Gromova

0

Как перевести число в десятичную систему в Python

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

Из двоичной (основание 2)

int("1010", 2)   # 10
int("1111", 2)   # 15
int("100000", 2) # 32

Из восьмеричной (основание 8)

int("17", 8)   # 15
int("40", 8)   # 32
int("377", 8)  # 255

Из шестнадцатеричной (основание 16)

int("ff", 16)   # 255
int("1a", 16)   # 26
int("FF", 16)   # 255 — регистр не важен

Из произвольного основания

int() умеет работать с любым основанием от 2 до 36:

int("z", 36)   # 35 — 'z' это максимальная цифра в base 36
int("10", 3)   # 3  — тройка в троичной системе
int("10", 5)   # 5  — пятёрка в пятеричной системе

Если число уже записано как литерал в коде

Python понимает двоичные, восьмеричные и шестнадцатеричные литералы напрямую. Они уже являются числами в десятичной системе в памяти:

0b1010   # двоичный литерал → 10
0o17     # восьмеричный литерал → 15
0xff     # шестнадцатеричный литерал → 255

print(type(0b1010))  # <class 'int'>

Обратная задача: из десятичного в другую систему

Если нужно наоборот — из десятичного числа получить строку в другой системе:

bin(10)   # '0b1010'
oct(255)  # '0o377'
hex(255)  # '0xff'

# Без префикса:
bin(10)[2:]   # '1010'
oct(255)[2:]  # '377'
hex(255)[2:]  # 'ff'

Частая ошибка

int() принимает только строку, не число:

int(1010, 2)    # TypeError
int("1010", 2)  # 10 — правильно

Если передать целое число без основания — вернёт его же:

int(42)  # 42

5 дней назад

Никита Вихров

+7 800 100 22 47

бесплатно по РФ

+7 495 085 21 62

бесплатно по Москве

108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845