From 293f28008e5df31b5c16cb0bf14b6c2fd63a4e00 Mon Sep 17 00:00:00 2001 From: fdzcxy212206303 Date: Thu, 17 Oct 2024 16:42:59 +0800 Subject: [PATCH] Delete 'zhuanhuanqi.java' --- zhuanhuanqi.java | 87 ------------------------------------------------ 1 file changed, 87 deletions(-) delete mode 100644 zhuanhuanqi.java diff --git a/zhuanhuanqi.java b/zhuanhuanqi.java deleted file mode 100644 index eba0b3c..0000000 --- a/zhuanhuanqi.java +++ /dev/null @@ -1,87 +0,0 @@ -import java.util.HashMap; -import java.util.Map; -import java.util.Scanner; - -public class zhuanhuanqi { - - // 字符到数值的映射 - private static final Map charToValueMap = new HashMap<>(); - // 数值到字符的映射 - private static final Map valueToCharMap = new HashMap<>(); - - static { - // 初始化字符到数值的映射 - for (char c = '0'; c <= '9'; c++) { - charToValueMap.put(c, c - '0'); - } - for (char c = 'A'; c <= 'F'; c++) { - charToValueMap.put(c, c - 'A' + 10); - } - - // 初始化数值到字符的映射 - for (int i = 0; i <= 9; i++) { - valueToCharMap.put(i, (char) ('0' + i)); - } - for (int i = 10; i <= 15; i++) { - valueToCharMap.put(i, (char) ('A' + i - 10)); - } - } - - // 将任意进制的数转换为十进制 - public static int toDecimal(String number, int base) { - int decimalValue = 0; - int power = 0; - - for (int i = number.length() - 1; i >= 0; i--) { - char digit = number.charAt(i); - int value = charToValueMap.get(digit); - decimalValue += value * Math.pow(base, power); - power++; - } - - return decimalValue; - } - - // 将十进制数转换为任意进制 - public static String fromDecimal(int decimalValue, int base) { - if (decimalValue == 0) { - return "0"; - } - - StringBuilder result = new StringBuilder(); - while (decimalValue > 0) { - int remainder = decimalValue % base; - result.insert(0, valueToCharMap.get(remainder)); - decimalValue /= base; - } - - return result.toString(); - } - - public static void main(String[] args) { - Scanner scanner = new Scanner(System.in); - - // 输入原始进制和数 - System.out.print("请输入原始进制 (2-16): "); - int sourceBase = scanner.nextInt(); - System.out.print("请输入原始数: "); - String sourceNumber = scanner.next(); - - // 输入目标进制 - System.out.print("请输入目标进制 (2-16): "); - int targetBase = scanner.nextInt(); - - // 验证输入 - if (sourceBase < 2 || sourceBase > 16 || targetBase < 2 || targetBase > 16) { - System.out.println("进制必须在2到16之间!"); - return; - } - - // 转换 - int decimalValue = toDecimal(sourceNumber, sourceBase); - String targetNumber = fromDecimal(decimalValue, targetBase); - - // 输出结果 - System.out.println("转换后的数是: " + targetNumber); - } -}