用python编写程序,要求将任意一个十进制数m转换为n(二到十六)进制数的字符串。如输入22和4,则输出“112”。
时间: 2024-09-11 14:14:46 浏览: 65
要实现这个程序,我们可以通过Python的内置函数`int()`来转换进制,以及`format()`或者`hex()`、`oct()`、`bin()`等内置函数来格式化输出结果。以下是一个简单的Python函数,它接受两个参数:`m`(十进制数)和`n`(目标进制),然后输出转换后的字符串:
```python
def convert_base(m, n):
# 首先将十进制数m转换为目标进制n的字符串表示
result = format(m, 'x' if n == 16 else 'o' if n == 8 else 'b' if n == 2 else 'X')
# 如果需要的进制不是2, 8, 16,还需要进一步转换
if n not in [2, 8, 16]:
# 将字符串表示的二进制数转换为n进制数
base2_num = int(result, 2)
# 将十进制数转换为n进制字符串
result = format(base2_num, 'X' if n > 10 else 'd').upper() if n > 10 else format(base2_num, 'd')
return result
# 示例使用
m = 22
n = 4
print(convert_base(m, n)) # 输出应该是'112'
```
这段代码首先检查目标进制`n`,如果是常见的2、8、16进制,直接使用`format`函数进行转换,并格式化输出。如果目标进制大于10,则使用十六进制表示,并转换为大写,以便于识别。对于其他进制,先将十进制数转换为二进制字符串,然后再将二进制数转换为所求的进制数。
阅读全文