利用栈能将一个十进制整数化为二进制数
时间: 2023-05-27 13:01:43 浏览: 49
算法步骤如下:
1. 初始化一个空栈。
2. 用整数div和mod操作得到除法的商和余数。
3. 把余数压入栈中。
4. 重复第2步和第3步,直到商为0为止。
5. 弹出栈中所有元素,由下至上就构成了该数的二进制表示。
Python代码实现如下:
```python
def decimal_to_binary(decimal):
"""将十进制整数转换为二进制数"""
stack = [] # 初始化一个空栈
while decimal != 0:
remainder = decimal % 2 # 取余数
stack.append(remainder) # 将余数入栈
decimal = decimal // 2 # 取整数商
binary = ''
while stack:
binary += str(stack.pop()) # 依次弹出栈中元素
return binary
# 测试
print(decimal_to_binary(10)) # 输出: 1010
```
相关问题
c++利用栈能将一个十进制整数化为二进制数
算法:
1. 初始化一个空栈
2. 将十进制整数不断除以2,每次余数入栈,更新十进制整数为商
3. 直到十进制整数为0,停止循环
4. 从栈中弹出各位二进制数,拼接成字符串返回
代码实现:
```
def decimal_to_binary(decimal):
stack = []
while decimal != 0:
remainder = decimal % 2
stack.append(remainder)
decimal = decimal // 2
binary = ""
while stack:
binary += str(stack.pop())
return binary
```
示例:
```
>>> decimal_to_binary(10)
'1010'
>>> decimal_to_binary(255)
'11111111'
```
c++ 利用栈将一个十进制整数化为二进制数
以下是基于Python编写的例子:
```python
def decimal_to_binary(decimal):
stack = []
# 将十进制数不断除以2,将余数入栈
while decimal > 0:
remainder = decimal % 2
stack.append(remainder)
decimal //= 2
# 从栈中弹出元素,拼接成二进制数
binary = ""
while len(stack) > 0:
binary += str(stack.pop())
return binary
```
例如,将十进制数15转换为二进制数,则调用`decimal_to_binary(15)`,返回结果为`"1111"`。