用栈实现进制转换代码
时间: 2024-10-21 07:03:18 浏览: 37
C和Python使用栈结构实现进制转换
在计算机科学中,栈是一种线性数据结构,遵循“后进先出”(LIFO,Last In First Out)的原则,非常适合用于实现基于字符的操作,例如进制转换。这里我将给出一个简单的Python示例,展示如何用栈来将十进制数转换成任意进制:
```python
def decimal_to_base(num, base):
digits = "0123456789ABCDEF" if base == 16 else "0123456789"
stack = []
while num > 0:
remainder = num % base
stack.append(digits[remainder])
num = num // base
# 由于栈顶的元素是最先入栈的,所以需要反转结果
return ''.join(reversed(stack))
# 使用示例
decimal_number = 10
hexadecimal_result = decimal_to_base(decimal_number, 16)
print(f"{decimal_number} in hexadecimal is {hexadecimal_result}")
```
这个函数通过不断取余数并压入栈中,直到把原始数字转换完。最后,因为栈的特性,我们得到的是逆序的结果,需要通过`reversed()`函数将其反转回来。
阅读全文