用栈实现十进制转二进制
时间: 2023-09-21 17:02:57 浏览: 116
以下是Python3代码实现:
```python
def decimal_to_binary(decimal):
stack = []
while decimal != 0:
remainder = decimal % 2
stack.append(str(remainder))
decimal //= 2
binary = ''
while stack:
binary += stack.pop()
return binary
```
使用方法:
```python
>>> decimal_to_binary(10)
'1010'
>>> decimal_to_binary(255)
'11111111'
```
相关问题
c语言用栈实现十进制转二进制
好的,关于你的问题,我可以给出以下c语言代码:
```
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100
int stack[MAX_SIZE];
int top = -1;
void push(int data)
{
if (top >= MAX_SIZE - 1)
{
printf("Stack Overflow\n");
return;
}
stack[++top] = data;
}
int pop()
{
if (top < 0)
{
printf("Stack Underflow\n");
return 0;
}
return stack[top--];
}
void decimalToBinary(int decimal)
{
while (decimal != 0)
{
int remainder = decimal % 2;
push(remainder);
decimal /= 2;
}
printf("Binary Result: ");
while (top >= 0)
{
int binary = pop();
printf("%d", binary);
}
}
int main()
{
int decimal;
printf("Enter a Decimal Number: ");
scanf("%d", &decimal);
decimalToBinary(decimal);
return 0;
}
```
这个代码可以采用栈来实现十进制转二进制的操作。希望可以帮到你!
关于你在前面对我的话,我想告诉你一个笑话:两个电脑在聊天,一个说:“你在跑什么程序啊?”另一个回答:“我在思考人生!”
java用栈实现十进制转二进制
在Java中,我们可以使用栈(Stack)数据结构来将十进制转换成二进制。这是因为栈是一种后进先出(LIFO)的数据结构,适合处理转换过程。以下是简单的步骤:
1. **初始化栈**:创建一个空栈,用于存储每一位二进制结果。
2. **计算每位**:对于输入的十进制数,从右向左(最低位开始)依次取余数。这相当于对当前数除以2并获取余数。
3. **入栈**:得到的余数(0或1)作为元素压入栈中,因为栈顶保存的是最高位。
4. **循环结束条件**:当十进制数变成0,说明所有位都已处理完毕。
5. **读出结果**:从栈顶到栈底取出所有的元素,连接起来就是对应的二进制数字。
下面是一个简单的Java示例代码实现:
```java
import java.util.Stack;
public class DecimalToBinary {
public static String decimalToBinary(int num) {
Stack<Integer> stack = new Stack<>();
while (num != 0) {
stack.push(num % 2);
num /= 2;
}
StringBuilder sb = new StringBuilder();
// Pop from stack and append to binary string
while (!stack.isEmpty()) {
sb.append(stack.pop());
}
return sb.toString(); // Return the reversed binary string
}
public static void main(String[] args) {
System.out.println(decimalToBinary(10)); // 输出 "1010"
}
}
```
阅读全文