算法编写一个程序:将输入的一个N进制整数转换成M进制数(N和M在2到16进制之间), 要求:N进制数和M进制数均以字符串方式存储。
时间: 2024-10-09 14:01:32 浏览: 18
顺序栈、链栈将10进制转为2、8、16进制源码
5星 · 资源好评率100%
为了将一个N进制整数转换为M进制整数,你可以采用一种通用的方法,首先将N进制数解析为十进制整数,然后再将这个十进制数转换为M进制。以下是一个简单的Python程序示例,使用内置函数完成这个过程:
```python
def convert_base(n_base_str: str, m_base: int) -> str:
# 将N进制字符串转换为十进制整数
decimal_num = int(n_base_str, len(n_base_str))
# 使用Python的内置函数将十进制转换为M进制字符串
m_base_str = format(decimal_num, f'{m_base}')
return m_base_str
# 示例输入
n_base_str = "1A" # N进制数(假设是16进制)
m_base = 10 # M进制数(转换为10进制)
# 调用函数并打印结果
result = convert_base(n_base_str, m_base)
print(f"{n_base_str} (base {len(n_base_str)}) to base {m_base}: {result}")
```
在这个例子中,`convert_base` 函数接受两个参数:一个是N进制字符串 `n_base_str` 和另一个是要转换的目标进制数 `m_base`。它首先计算N进制数对应的十进制值,然后使用 `format()` 函数将十进制数转换为M进制,并返回转换后的字符串。
如果你想让用户输入N和M,可以添加一些用户交互的部分。例如,你可以使用`input()`函数获取用户的输入:
```python
n_base = input("Enter the N base number (2-16): ")
m_base = int(input("Enter the target M base (2-16): "))
```
请注意,在实际应用中,需要检查用户输入的合法性,如确保N和M都在指定范围(2到16)。此外,如果你想要处理更广泛的N进制范围,可以自行扩展代码来适应。
阅读全文