编写函数,实现不同进制数字之间的转换。函数的参数包括待转换的字符串s,原始进制src_system,目标进制dst_system等。通过函数,可得到目标进制的字符串。如果进制超过十进制,则使用字母表示,字母为A-Z。最大不超过十六进制。
时间: 2024-02-11 15:08:28 浏览: 62
进制转换工具 编程序
下面是一个实现不同进制数字之间转换的函数:
```python
def convert(s, src_system, dst_system):
# 将字母转为大写
s = s.upper()
# 将原始进制转为10进制
num = 0
for c in s:
if c.isdigit():
num = num * src_system + int(c)
else:
num = num * src_system + ord(c) - ord('A') + 10
# 将10进制转为目标进制
digits = []
while num > 0:
rem = num % dst_system
if rem < 10:
digits.append(str(rem))
else:
digits.append(chr(rem - 10 + ord('A')))
num //= dst_system
digits.reverse()
return ''.join(digits)
```
该函数接受三个参数:待转换的字符串 `s`,原始进制 `src_system`,目标进制 `dst_system`。首先,将输入字符串 `s` 转为大写字母,然后将原始进制转为10进制数 `num`。这里使用了 `ord` 函数将字母转为数值。接下来,将10进制数 `num` 转为目标进制 `dst_system`,并将每一位数字或字母存储在一个列表 `digits` 中。最后,将 `digits` 中的元素反转,拼接成一个字符串并返回。
例如,将10进制数 123456 转为16进制,可以调用函数 `convert('123456', 10, 16)`,得到结果 `'1E240'`。
阅读全文