使用堆栈将十进制数转换为二进制数的 Java 程序
Java 是高级的、编译的以及解释的编程语言。栈是大多数编程语言中使用的抽象数据类型,可以使用数组或链表来实现。堆栈数据结构遵循后进先出原则。堆栈允许执行推送、弹出、查看操作。推送操作用于将新元素插入堆栈。pop 操作用于从堆栈顶部移除元素。peek 操作用于获取堆栈的顶部元素,而不将其从堆栈中移除。使用堆栈的推入和弹出操作,可以将十进制数转换为二进制数。现在,Java 提供了内置的堆栈类,可以用来满足我们的目的。
使用堆栈将十进制数转换为二进制数:
- 使用预定义的堆栈。
- 使用数组作为堆栈。
方法 1:使用预定义堆栈
进场:
- 预定义的堆栈类用于创建堆栈。
- 要求用户输入一个十进制数。
- 接下来,执行 while 循环,其中数字 2 的 mod 结果被推入堆栈,并且数字被 2 除。
- 重复这一过程,直到数字大于 0。
- 当数字为 0 时,while 循环终止,另一个 while 循环开始打印十进制数字的二进制等价物。
- 存储在堆栈中的余数在后进先出法中弹出,给出所需的二进制表示。
代码实现:
Java 语言(一种计算机语言,尤用于创建网站)
// Java Program to Convert a Decimal Number
// to Binary Number using Stacks
import java.util.*;
public class DecimalToBinary
{
public static void main(String args[])
{
// creating a stack
Stack<Integer> stack = new Stack<Integer>();
System.out.println("Enter a decimal number: ");
int num = 23;
while(num>0)
{
int r = num%2;
// pushing the remainder inside the stack
stack.push(r);
num/=2;
}
System.out.print("Binary equivalent: ");
while (!(stack.isEmpty() ))
{
// printing the resultant binary number stored in the
// stack in LIFO manner
System.out.print(stack.pop());
}
}
}
Output
Enter a decimal number:
Binary equivalent: 10111
方法二:使用数组作为堆栈
进场:
- 不使用内置的堆栈类,而是使用数组,并定义 push 和 pop 方法来执行元素的插入和移除。
- 堆栈是使用静态数组实现的。
- 静态变量计数跟踪插入的元素数量。
- 剩下的过程与前面的例子完全相似。
Java 语言(一种计算机语言,尤用于创建网站)
// Java Program to Convert a Decimal Number
// to Binary Number using Stacks
import java.util.*;
public class DecimalToBinary {
static int arr[] = new int[1000];
// maintaining count variable as the top
// of the stack
static int count;
// push at the count index and increment the count
public static void push(int n) { arr[count++] = n; }
// pop all the elements starting from count-1
// till 0
public static void pop()
{
for (int i = count - 1; i >= 0; i--) {
System.out.print(arr[i]);
}
}
public static void main(String args[])
{
System.out.println("Enter a decimal number: ");
int num = 46;
while (num > 0) {
int r = num % 2;
push(r);
num /= 2;
}
System.out.print("Binary equivalent: ");
pop();
}
}
Output
Enter a decimal number:
Binary equivalent: 101110
版权属于:月萌API www.moonapi.com,转载请注明出处