用栈的方法实现进制转换代码
时间: 2024-11-22 12:39:22 浏览: 23
链式栈的进制转换源代码
在计算机科学中,将一种数制转换成另一种数制,比如从十进制转二进制,可以利用栈的数据结构来实现。这里以将十进制转换为二进制为例,说明基本思路:
```python
def decimal_to_binary(n):
# 初始化空栈和结果列表
stack = []
binary_digits = []
while n > 0:
# 取余数并将它压入栈
remainder = n % 2
stack.append(remainder)
n //= 2
# 从栈顶开始,依次取出并添加到结果中
while stack:
binary_digits.append(stack.pop())
# 因为栈内是从低位到高位存储的,所以需要反转列表得到正确的二进制表示
binary_digits.reverse()
return ''.join(map(str, binary_digits))
# 测试
print(decimal_to_binary(10)) # 输出: "1010"
```
在这个代码中,我们通过不断地对输入数字取模2并压入栈,然后除以2获取下一个位,直到商变为0。最后,我们将栈内的元素依次弹出并添加到结果数组中,形成二进制字符串。
阅读全文