Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Перевод в системы счисления python

Александр Модин Ученик (166), на голосовании 1 месяц назад
Почему нет в питоне функции перевода в систему счисления с основанием n? Ведь есть обратная этому действию функция int.
Голосование за лучший ответ
Иван Б. Мыслитель (6720) 3 месяца назад
В Python нет отдельной функции для перевода числа в систему счисления с основанием n, но есть несколько встроенных функций для перевода в различные системы счисления:

bin(). Перевод в двоичную систему счисления. В качестве аргумента нужно передать значение в виде числа, а оператор вернёт строку с двоичным числом. У результата также будет префикс 0b, указывающий на основание системы счисления.
oct(). Перевод в восьмеричную систему счисления. Оператор возвращает строку с восьмеричным числом и префиксом 0o.
hex(). Перевод в шестнадцатеричную систему счисления. Оператор вернёт строку с шестнадцатеричным числом и префиксом 0x.
Для обратного перевода в десятичную систему счисления можно использовать функцию int(). Для этого нужно передать ей два аргумента: первый — это строка с числом в какой-то системе счисления, а второй — это основание системы счисления самого числа. По умолчанию для этого необязательного аргумента стоит значение равное 10.
Александр МодинУченик (166) 3 месяца назад
Это я прекрасно знаю и понимаю, другой вопрос мне покоя не дает. Почему нет?
Александр Модин, сделай
Alex M Знаток (497) 2 месяца назад
int() по возможности приводит объект к типу данных integer, как она в принципе может быть связана с переводом в другую систему счисления?
Don BuhoУченик (171) 2 месяца назад
 x = '111'
print(int(x, 2)) # 7
Nigga Banana Знаток (318) 1 день назад
def to_base(n, base):
if n < 0:
return '-' + to_base(-n, base)
elif n == 0:
return '0'
else:
digits = []
while n:
digits.append(int(n % base))
n //= base
return ''.join(str(x) for x in digits[::-1])
n число, base основание, при написании кода задаешь им значения и готово
print(to_base(n, base))
Похожие вопросы