利用栈结构,编写程序将十进制数转换成二进制数或八进制数。
时间: 2023-04-25 09:03:34 浏览: 126
可以使用栈结构来实现将十进制数转换成二进制数或八进制数的程序。具体实现方法如下:
1. 对于将十进制数转换成二进制数,可以使用除2取余法。将十进制数不断除以2,每次将余数入栈,直到商为。然后将栈中的元素依次出栈,即可得到二进制数。
2. 对于将十进制数转换成八进制数,可以使用除8取余法。将十进制数不断除以8,每次将余数入栈,直到商为。然后将栈中的元素依次出栈,即可得到八进制数。
下面是一个示例代码:
```python
class Stack:
def __init__(self):
self.items = []
def is_empty(self):
return len(self.items) ==
def push(self, item):
self.items.append(item)
def pop(self):
return self.items.pop()
def decimal_to_binary(decimal):
stack = Stack()
while decimal > :
remainder = decimal % 2
stack.push(remainder)
decimal //= 2
binary = ''
while not stack.is_empty():
binary += str(stack.pop())
return binary
def decimal_to_octal(decimal):
stack = Stack()
while decimal > :
remainder = decimal % 8
stack.push(remainder)
decimal //= 8
octal = ''
while not stack.is_empty():
octal += str(stack.pop())
return octal
# 测试
print(decimal_to_binary(10)) # 输出:101
print(decimal_to_octal(10)) # 输出:12
```
以上代码中,我们定义了一个栈结构,并实现了将十进制数转换成二进制数和八进制数的函数。在函数中,我们使用了除法和取余运算,将余数入栈,最后将栈中的元素依次出栈,得到转换后的数。
阅读全文