From 8e9990183b1355f7afe08e61d4ee5b93f34514cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=99=A8=E9=9B=BE=E7=B9=81=E6=98=9F?= <484502012@qq.com> Date: Thu, 10 Oct 2024 14:51:37 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BaseConverter.java | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 BaseConverter.java 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