Python实现任意进制转换
给出一个A进制数N,你要把它转成B进制。
输入
第一行是两个整数A,B(2<=A,B<=16)
第二行是一个A进制的字符串N。题目保证A进制数N转成10进制后的范围在inti型范围内。
如果A>=10,且某些位的权值大于等于10,那么权值就用小写字母表示,比如,a代表10,bb代表11,c代表12,d代表13,e代表14,f代表15。
输出
输出N转成B进制的结果。
输入
10 2
100
输出
1100100
输入
2 16
10001111
输出
8f
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
def f(n, x):
#n为待转换的十进制数,x为机制,取值为2-16
a=[0,1,2,3,4,5,6,7,8,9,'a','b','c','d','e','f']
b=[]
while True:
s=n // x # 商
y=n % x # 余数
b=b+[y]
if s==0:
break
n=s
b.reverse() # 辗转相除法
ans = ''
for i in b:
ans += str(a[i])
return ans
A,B = map(int, input().split())
n = int(input())
n = int(str(n), A) # int函数可以将A进制的n统一转为十进制
ans = f(n, B)
print(ans)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22