|
|
|
@ -0,0 +1,72 @@
|
|
|
|
|
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();
|
|
|
|
|
}
|
|
|
|
|
}
|