python позволяет конвертировать из строки в целое число с использованием любой базы в диапазоне [2,36], используя:
int(string,base)
im ищет элегантную обратную функцию, которая принимает целое число и базу и возвращает строку
например
>>> str_base(224,15)
'ee'
i имеет следующее решение:
def digit_to_char(digit):
if digit < 10: return chr(ord('0') + digit)
else: return chr(ord('a') + digit - 10)
def str_base(number,base):
if number < 0:
return '-' + str_base(-number,base)
else:
(d,m) = divmod(number,base)
if d:
return str_base(d,base) + digit_to_char(m)
else:
return digit_to_char(m)
note: digit_to_char() работает для баз данных <= 169 произвольно с использованием символов ascii после "z" в качестве цифр для оснований выше 36
существует ли встроенная функция python, библиотечная функция или более элегантная обратная функция int (string, base)?