You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

72 lines
2.2 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

import java.util.Scanner;
public class test {
// 将字符串转换为十进制
public static int toDecimal(String value, int base) {
return Integer.parseInt(value, base);
}
// 将十进制转换为指定进制
public static String fromDecimal(int value, int base) {
return Integer.toString(value, base).toUpperCase();
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请选择转换类型:");
System.out.println("1. 二进制");
System.out.println("2. 八进制");
System.out.println("3. 十进制");
System.out.println("4. 十六进制");
System.out.print("请输入源进制1-4: ");
int sourceBase = scanner.nextInt();
System.out.print("请输入目标进制1-4: ");
int targetBase = scanner.nextInt();
System.out.print("请输入要转换的数字: ");
String value = scanner.next();
int decimalValue;
// 将输入的值转换为十进制
switch (sourceBase) {
case 1:
decimalValue = toDecimal(value, 2);
break;
case 2:
decimalValue = toDecimal(value, 8);
break;
case 3:
decimalValue = toDecimal(value, 10);
break;
case 4:
decimalValue = toDecimal(value, 16);
break;
default:
throw new IllegalArgumentException("无效的源进制");
}
// 将十进制值转换为目标进制
String result;
switch (targetBase) {
case 1:
result = fromDecimal(decimalValue, 2);
break;
case 2:
result = fromDecimal(decimalValue, 8);
break;
case 3:
result = fromDecimal(decimalValue, 10);
break;
case 4:
result = fromDecimal(decimalValue, 16);
break;
default:
throw new IllegalArgumentException("无效的目标进制");
}
System.out.println("转换结果: " + result);
scanner.close();
}
}