java用栈实现十进制转二进制
时间: 2024-09-13 19:07:34 浏览: 61
在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"
}
}
```
阅读全文