用栈实现十进制转换成二进制和八进制的代码
时间: 2024-11-29 08:39:32 浏览: 6
java_十进制数转换为二进制,八进制,十六进制数的算法
5星 · 资源好评率100%
当我们想将十进制数转换为二进制或八进制时,可以利用栈的数据结构。这里以Python为例,首先说明如何转换为二进制:
```python
def decimal_to_binary(n):
binary_stack = []
while n > 0:
binary_stack.append(n % 2)
n //= 2
# 将栈顶元素依次弹出并连接
binary_num = ''.join(map(str, binary_stack[::-1]))
return binary_num
# 示例
decimal_number = 42
binary_result = decimal_to_binary(decimal_number)
print(f"{decimal_number} in binary is {binary_result}")
```
接下来是将十进制转为八进制:
```python
def decimal_to_octal(n):
octal_stack = []
while n > 0:
octal_stack.append(n % 8)
n //= 8
octal_num = ''.join(map(str, octal_stack[::-1]))
return octal_num
# 示例
decimal_number = 123
octal_result = decimal_to_octal(decimal_number)
print(f"{decimal_number} in octal is {octal_result}")
```
在这两个函数中,我们使用了除法和取余运算来进行位移,同时将结果压入栈中,最后再把栈里的数字连起来得到二进制或八进制表示。
阅读全文