通过本次实验,编程实现将一个十进制的正 整数分别转换为二进制、八进制和十六进制数。 栈的存储结构及实现
时间: 2024-12-17 13:31:21 浏览: 5
在编程中,将十进制整数转换为二进制、八进制和十六进制通常涉及到数值运算和字符串表示。这里我们可以借助栈的数据结构来辅助这个过程,虽然它并不是必需的,但它可以提供一种递归或逐步提取余数的方法。
首先,我们需要了解栈的基本操作:
1. **压入** (Push): 把元素添加到栈顶。
2. **弹出** (Pop): 删除并返回栈顶元素。
3. **查看栈顶** (Peek): 查看栈顶元素但不删除。
下面是一个简单的Python示例,利用栈来模拟上述转换过程:
```python
class Stack:
def __init__(self):
self.stack = []
def push(self, value):
self.stack.append(value)
def pop(self):
if not self.is_empty():
return self.stack.pop()
def is_empty(self):
return len(self.stack) == 0
def decimal_to_other_bases(decimal_num, base=16):
# 创建一个空栈
stack = Stack()
while decimal_num > 0:
remainder = decimal_num % base
stack.push(str(remainder))
decimal_num //= base
result = "".join(reversed(stack.stack)) # 从栈底开始拼接结果
return result, base
# 示例
decimal_input = 42
binary_result, binary_base = decimal_to_other_bases(decimal_input)
octal_result, octal_base = decimal_to_other_bases(decimal_input, 8)
hexadecimal_result, hexadecimal_base = decimal_to_other_bases(decimal_input, 16)
print(f"Decimal {decimal_input} in base {binary_base}: {binary_result}")
print(f"Decimal {decimal_input} in base {octal_base}: {octal_result}")
print(f"Decimal {decimal_input} in base {hexadecimal_base}: {hexadecimal_result}")
阅读全文