@ -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;