使用python语言对于输入的任意一个非负十进制整数N,选择一个要转换的进制d,打印输出与其等值的d进制数
时间: 2024-09-26 13:14:36 浏览: 32
在Python中,你可以编写一个简单的函数,接受两个参数:一个非负十进制整数`N`和一个目标进制`d`,然后使用`format()`函数或者位运算符来进行转换。以下是两种方法的示例:
**方法一:使用`format()`函数**
```python
def convert_to_base(N, d):
# 检查进制是否有效
if not isinstance(d, int) or d < 2 or d > 36:
raise ValueError("Invalid base value. It should be an integer between 2 and 36.")
# 使用字符串表示法转换
return format(N, f'd{d}')
# 测试
N = int(input("请输入一个非负十进制整数: "))
d = int(input("请选择一个进制 (2-36): "))
result = convert_to_base(N, d)
print(f"{N} 转换为 {d} 进制是: {result}")
```
**方法二:使用位运算法(适用于较小的整数范围)**
```python
def convert_to_base_iterative(N, d):
# 较小的d进制转换,如10进制转2进制
digits = []
while N > 0:
digit = N % d
digits.append(str(digit))
N //= d
# 从右向左拼接字符串
return ''.join(digits[::-1])
# 测试
N = int(input("请输入一个非负十进制整数: "))
d = int(input("请选择一个进制 (2-10): "))
result = convert_to_base_iterative(N, d)
print(f"{N} 转换为 {d} 进制是: {result}")
```
阅读全文