编程实现一个简易的数制转换器:, 1,基本功能(必选):输入十进制整数;输出相应的8进制数;算法可参考教材算法3.20;, 2,拓展功能(选做):输入十进制整数和需要转换的进制(比如二进制、八进制、十六进制等),输出相应的转换结果。 采用栈的方法
时间: 2024-10-19 14:14:17 浏览: 13
编程实现一个简单的数制转换器可以按照递归或者迭代的方式完成,这里我们先提供基础版的8进制转换,然后简单说明如何添加拓展功能:
1. **基础版 - 十进制转8进制**
```python
def decimal_to_octal(n):
if n == 0:
return '0'
else:
remainder = n % 8
return decimal_to_octal(n // 8) + str(remainder)
# 示例
input_decimal = int(input("请输入一个十进制整数:"))
output_octal = decimal_to_octal(input_decimal)
print(f"十进制 {input_decimal} 转换成8进制为:{output_octal}")
```
2. **拓展版 - 多种进制转换**
为了添加拓展功能,我们需要修改函数以接受额外的参数表示目标进制。我们可以创建一个新的函数`convert_base(input_number, from_base, to_base)`,并使用Python的内置函数`format()`来进行更通用的转换。
```python
def convert_base(input_number, from_base=10, to_base=8):
# Python的内置方法可以直接完成进制转换
return format(input_number, f"{to_base}{'b' if to_base < 10 else ''}")
# 示例
input_decimal = int(input("请输入一个十进制整数:"))
base = input("请输入你需要转换成的进制(如2、8、16):")
output_base = convert_base(input_decimal, 10, int(base))
print(f"十进制 {input_decimal} 转换成{base}进制为:{output_base}")
```
阅读全文