Python elegant inverse function of int(string,base)
Posted
by
random guy
on Stack Overflow
See other posts from Stack Overflow
or by random guy
Published on 2010-01-14T10:28:03Z
Indexed on
2011/01/12
3:53 UTC
Read the original article
Hit count: 216
python
|conversion
python allows conversions from string to integer using any base in the range [2,36] using:
int(string,base)
im looking for an elegant inverse function that takes an integer and a base and returns a string
for example
>>> str_base(224,15)
'ee'
i have the following solution:
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() works for bases <= 169 arbitrarily using ascii characters after 'z' as digits for bases above 36
is there a python builtin, library function, or a more elegant inverse function of int(string,base) ?
© Stack Overflow or respective owner