python 任意进制的转换
本例是为了熟悉递归的使用,实现不同进制之间的转换
结果仅供参考,因为16 进制的字母没有完成
def count(num:str, from_:int, to:int):
"""
:params num: 待转换的数字
:params from_: 原进制
:params to: 目标进制
return 转换结果
"""
s = []
o_num = sum([int(i) * from_ ** n for n, i in enumerate(num[::-1])])
print("{}进制:{} --> 10进制:{}".format(from_, num, o_num), end=" --> ")
def inner(num):
a, b = divmod(num, to)
if a == 0:
s.insert(0, b)
return s
s.insert(0, b)
return inner(a)
result = "".join([str(i) for i in inner(o_num)])
print("{}进制: {}".format(to, result))
return result
>>> count('14',8, 2)
8进制:14 --> 10进制:12 --> 2进制: 1100