数据结构编写进制转换: 1.输入被转换的十进制数(N)和要转换的(R)二进制(八进制、十六进制) 数; 2. 当N!=0时,N%R进栈,N为N/R,直到N为零; 3. 若栈非空,出栈, 并输出栈顶元素,直到栈为空。
时间: 2024-10-21 14:17:45 浏览: 34
数据结构中的进制转换通常涉及使用递归或者循环以及堆栈(Stack)数据结构。下面是一个简单的Python示例,展示了如何将十进制数转换为二进制、八进制或十六进制:
```python
def decimal_to_base(N, R):
# 判断R是否是有效的进制数
if R not in [2, 8, 16]:
return "Invalid base. Choose between 2 (binary), 8 (octal), or 16 (hexadecimal)."
# 定义一个空列表来模拟堆栈
stack = []
while N != 0:
remainder = N % R
stack.append(remainder)
N = N // R
# 将结果从堆栈中弹出并按照进制顺序输出
result = ''
for digit in reversed(stack):
if R == 2:
result += str(digit) + 'b' # 后缀表示二进制
elif R == 8:
result += str(digit) + 'o' # 后缀表示八进制
else: # R == 16
result += hex(digit)[2:] # 去掉 '0x' 预前缀,并保持大写字母
return result
# 示例:
decimal_num = 42
bases = ['2', '8', '16']
for base in bases:
print(f"{decimal_num} in {base}: {decimal_to_base(decimal_num, int(base))}")
```
当你运行这个程序,它会分别打印42在二进制、八进制和十六进制下的表示。
阅读全文