int函数将k进制转换成10进制
int(str, k) -> 10进制
int(“64”), int(“100”, 8), int(“40”, 16), int(“1000000”, 2)
(64, 64, 64, 64)
将10进制转化成k进制
补充(将ascii数字转换成相应str):In [150]: chr(65)
Out[150]: ‘A’
将字符转成相应ascii码:ord(‘a’)
97
def ten2k(k, number):
ls = []
# S = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', ......, 'Z']
S = list(map(str, range(10))) + [chr(x) for x in range(65, 91)]
while True:
s = number // k
y = number % k
# ls.append(helper(y))
ls.append(S[y])
if not s: break
number = s
ls = ls[::-1]
return ''.join(ls)
def helper(num):
if num < 10:
return str(num)
else:
# 将ascii数字转成A-Z字符
return chr(num - 10 + 65)