@Alexander12345

Как перевести число в двочиную систему состоящую из 2 и 5?

Сама суть задачи в заголовке. Есть какое то число в системе счисления, состоящей из 2 и 5, например 22. Если перевести его в десятичную получиться получится 3. Счет начинается с 2, то есть: 2 - 1; 5 - 2 и тп. Я смог реализовать это как:
N = int(input())
print(str(int(str(N).replace('2', '0').replace('5', '1'), 2)))

Ясное дело, оно работает не правильно. При вводе 2 он выводит 0. При вводе 22, 222 и тд - тоже самое. Есть ли простой способ решить мою задачу? Библиотека для кастомных систем счисления? И вообще без перебора циклом. Рад любому ответу
  • Вопрос задан
  • 72 просмотра
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
Перевод числа в строку с записью двоичной системе - это bin(). Единственное, первые два символа префикса 0b оторвать. Для более удобной замены нескольких символов за один раз лучше использовать .translate(). В итоге получаем:
table = {ord('0'):'2',ord('1'):'5'}
print(bin(N)[2:].translate(table))
Ответ написан
Ваш ответ на вопрос

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

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