我们需要利用十进制作为桥梁,假设一个数是m进制,需要将其转化为n进制,则需要先将m进制转换为十进制,再从十进制转化为n进制
int_to_char="0123456789ABCDEF"
char_to_int={}
#初始化char_to_int字典
for idx,char in enumerate(int_to_char):
char_to_int[char]=idx
def k_to_ten(k:int,x:str):
#对应位置的数字乘上对应的k次方再相加
ans = 0
for i in x:
ans+=ans*(k-1)+char_to_int[i]
return ans
def ten_to_k(k:int,x:int):
#短除法
ans=""
while x!=0:
ans+=int_to_char[x%k]
x//=k
return ans[::-1]
def M_to_N(m,n,x):
y=k_to_ten(m,str(x))
z=ten_to_k(n,y)
return z