diff --git a/BaseConverter.java b/BaseConverter.java new file mode 100644 index 0000000..137ee16 --- /dev/null +++ b/BaseConverter.java @@ -0,0 +1,28 @@ +import java.util.Scanner; + +public class BaseConverter { + + // 字符数组,用于表示大于9的数字 + private static final char[] DIGITS = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}; + + /** + * 将给定进制的字符串转换为十进制整数 + * + * @param str 给定进制的字符串表示 + * @param base 给定进制的基数 + * @return 十进制整数 + */ + public static int toDecimal(String str, int base) { + int result = 0; + int power = 0; + + for (int i = str.length() - 1; i >= 0; i--) { + char c = str.charAt(i); + int digit = Character.isDigit(c) ? c - '0' : c - 'A' + 10; + result += digit * Math.pow(base, power++); + } + + return result; + } + +} \ No newline at end of file