Задать вопрос
@quintbrut

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

В обещм есть
код
def convert_base(num, to_base=10, from_base=10):
    # сначала переводим десятичные
    if isinstance(num, str):
        n = int(num, from_base)
    else:
        n = int(num)
    # переводим десятичные в произвольную
    alphabet = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    if n < to_base:
        return alphabet[n]
    else:
        return convert_base(n // to_base, to_base) + alphabet[n % to_base]
.

Примеры использования
In [41]: convert_base('AA16342F', from_base=16, to_base=8)
Out[41]: '25205432057'

In [42]: convert_base('111', from_base=2)
Out[42]: '7'

In [43]: convert_base(33, to_base=16)
Out[43]: '21'

In [44]: convert_base(33333, to_base=20)
Out[44]: '436D'

In [45]: convert_base(3333333, to_base=20)
Out[45]: '10GD6D'

Меня интересует то, как оно переводит из произвольной системы исчисления в любую другую произвольную систему исчисления?
  • Вопрос задан
  • 9981 просмотр
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Python-разработчик
    9 месяцев
    Далее
  • SF Education
    Бэкенд-разработчик на Python
    3 месяца
    Далее
Решения вопроса 2
fox_12
@fox_12 Куратор тега Python
Расставляю биты, управляю заряженными частицами
Так же как и на любом другом языке программирования.
Первая cсылка из гугла:
urok.1sept.ru/%D1%81%D1%82%D0%B0%D1%82%D1%8C%D0%B8...
Ответ написан
Комментировать
trapwalker
@trapwalker Куратор тега Python
Программист, энтузиаст
Если на входе строка, то перевод в целое значение (в двоичный вид) осуществляется стандартной функцией int, у которой есть необязательный аргумент, указывающий на систему счисления.

Конвертация числа в n-ричную систему производится рекурсивно.
Если число на входе меньше базы, то возвращаем соответствующий по счету символ алфавита.
Если число больше или равно базе, то возвращаем символ алфавита, соответствующий остатку от деления на базу, а оставшееся после деления число снова отдаётся этой же функции рекурсивно.

В n-ричной системе счисления каждая очередная цифра числа - это очередной остаток от деления числа на базу.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы