diff --git a/test.java b/test.java new file mode 100644 index 0000000..b94eaf8 --- /dev/null +++ b/test.java @@ -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(); + } +} \ No newline at end of file