@Enot_Star

Как перевести в семеричную систему счисления число больше 6?

Есть в коде следующая строка:
int(str(82),7)
Которая выдает ошибку:
ValueError: invalid literal for int() with base 7: '82'
Как исправить это и переводить в семеричную систему счисления числа больше 6?
  • Вопрос задан
  • 3081 просмотр
Решения вопроса 1
@Enot_Star Автор вопроса
Я сам нашел решение https://www.cyberforum.ru/python-beginners/thread2...
def dec_to_base(N, base):
    if not hasattr(dec_to_base, 'table'):        
        dec_to_base.table = '0123456789ABCDEF'       
    x, y = divmod(N, base)        
    return dec_to_base(x, base) + dec_to_base.table[y] if x else dec_to_base.table[y]
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@pfg21
ex-турист
написать функцию преобразования системы счисления числа.
погуглить и посыпется на тебя таких функций как из рога изобилия. разобраться, подумать и сделать под себя нужную.
на этом обучение и строится.
Ответ написан
Комментировать
Viji
@Viji
Associate DevOps Engineer
Скопил код с https://www.quora.com/How-do-I-write-a-program-in-...

def convertToSimeric(number, targetBase=7):
newNum = ''
powers = []
for x in reversed(range(targetBase)):
powers.append(2**x)
for i, x in enumerate(powers):
if number - x >= 0:
newNum += '1'
number = number - x
else:
newNum += '0'
print(''.join(newNum))
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы