python 编写一个函数,将一个 a 进制的数转换成一个 b 进制的数,其中 a 和 b 都在[2, 16]之间。二进制至十六进制之间转换
程序员文章站
2022-03-15 21:01:02
编写一个函数,将一个 a 进制的数转换成一个 b 进制的数,其中 a 和 b 都 在[2, 16]之间。该函数有3个参数,前两个参数分别是 a 和 b ,第三个参数是一个字符串,表示a进制的数。如果 a 和 b 不在给定范围之内,返回None, 否则返回对应的 b 进制数。def func59(a, b, s): if a == b: return s if 2 <= a <= 16 and 2 <= b <= 16:...
编写一个函数,将一个 a 进制的数转换成一个 b 进制的数,其中 a 和 b 都 在[2, 16]之间。
该函数有3个参数,前两个参数分别是 a 和 b ,第三个参数是一个字符串,表示a进制的数。
如果 a 和 b 不在给定范围之内,返回None, 否则返回对应的 b 进制数。
def func59(a, b, s):
if a == b:
return s
if 2 <= a <= 16 and 2 <= b <= 16:
#----将给出的字符串数字转换成十进制数----
if a != 10:
str_num = str(s)
str_num = str_num[::-1]
temp = 0
step_num = 0
for i in str_num:
if i == 'A':
i = '10'
elif i == 'B':
i = '11'
elif i == 'C':
i = '12'
elif i == 'D':
i = '13'
elif i == 'E':
i = '14'
elif i == 'F':
i = '15'
i = int(i)
step_num += a ** temp * i
temp += 1
s = step_num
#----转换成十进制数的整数类型转换成目标进制数,最终为字符串数字
if b == b:
list_1, list_2 = [], []
while s > 0:
list_1.append(s % b)
s //= b
for i in list_1:
if i == 10:
list_2.append('A')
elif i == 11:
list_2.append('B')
elif i == 12:
list_2.append('C')
elif i == 13:
list_2.append('D')
elif i == 14:
list_2.append('E')
elif i == 15:
list_2.append('F')
else:
list_2.append(str(i))
return ''.join(list_2[::-1])
else:
return None
if __name__ == "__main__":
print(func59(5, 13, '431'))
print(func59(2, 16, '11111'))
本文地址:https://blog.csdn.net/Using_head/article/details/110452041
上一篇: 第三方平台微信平台下的蓝牙打印