在 Java 中,你可以使用栈来实现进制转换。栈是一种数据结构,其中数据是按照 “后进先出”(Last In, First Out)的顺序排列的。
第一种:使用栈实现进制转换的示例代码:
import java.util.Scanner;
import java.util.Stack;
/*
使用栈实现进制转换的示例代码
*/
public class BaseConversion {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个数字: ");
int num = scanner.nextInt();
System.out.print("请输入需要转换的进制: ");
int base = scanner.nextInt();
Stack<Integer> stack = new Stack<>();
while (num > 0) {
int rem = num % base;
stack.push(rem);
num = num / base;
}
System.out.print("转换后的结果是:");
while (!stack.isEmpty()) {
System.out.print(stack.pop());
}
}
}
在上面的代码中,我们首先将输入的数字 num 和要转换的进制 base 作为参数传入函数。然后,我们使用一个循环来不断地将 num 除以 base,并将余数压入栈中。最后,我们使用另一个循环来将栈中的数字逐一弹出,并输出。
在这个示例中结果:

输出结果
第二种:使用递归。你可以通过不断地递归地调用函数来实现进制转换。例如,下面是使用递归实现进制转换的示例代码:
import java.util.Scanner;
/*
实现进制转换的示例代码
*/
public class BaseConversion {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个数字: ");
int num = scanner.nextInt();
System.out.print("请输入需要转换的进制: ");
int base = scanner.nextInt();
System.out.print("转换后的结果是:");
System.out.println(convert(num, base));
}
public static String convert(int num, int base) {
StringBuilder sb = new StringBuilder();
if (num > 0) {
sb.append(convert(num / base, base));
sb.append(num % base);
}
return sb.toString();
}
}
第三种:常见的方法是使用数学方法来实现进制转换。你可以使用模运算(%)来获取数字的余数,然后使用除法运算(/)来获取数字的商。例如,下面是使用数学方法实现进制转换的示例代码:
import java.util.Scanner;
/*
实现进制转换的示例代码
*/
public class BaseConversion {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个数字: ");
int num = scanner.nextInt();
System.out.print("请输入需要转换的进制: ");
int base = scanner.nextInt();
System.out.print("转换后的结果是:");
System.out.println(convert(num, base));
convert(num, base);
}
private static String convert(int num, int base) {
StringBuilder sb = new StringBuilder();
while (num > 0) {
sb.append(num % base);
num = num / base;
}
String result = sb.reverse().toString();
return result;
}
}
总结一下上面提到的三种方法:
- 使用栈实现进制转换:在这种方法中,我们使用栈来存储转换后的数字。首先,我们将输入的数字除以要转换的进制,并将余数压入栈中。使用另一个循环来将栈中的数字逐一弹出,并输出。
- 使用递归实现进制转换:在这种方法中,我们使用递归来实现进制转换。我们调用函数时,不断地将输入的数字除以要转换的进制,并将余数添加到字符串中。将字符串反转并输出。
- 使用数学方法实现进制转换:在这种方法中,我们使用模运算和除法运算来实现进制转换。我们不断地将输入的数字除以要转换的进制,并将余数添加到字符串中。将字符串反转并输出。
本文暂时没有评论,来添加一个吧(●'◡'●)