题解 | #进制转换#
进制转换
https://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String mat = sc.next();
int res = 0;
int tmp = 0;
// 先处理最低位,从后往前读,前两位是0X,不读
for(int i = mat.length() - 1; i > 1; i--) {
char ch = mat.charAt(i);
// Java 中字符用Unicode存储,0-9是1-10,A-Z是65-90,a-z是97-122,把ch转换成int
if(ch <= '9') {
ch -= '0';
tmp = ch;
} else if(ch <= 'Z') {
ch -= 'A';
tmp = 10 + ch;
} else if(ch <= 'z') {
ch -= 'a';
tmp = 10 + ch;
}
// 每一位的位权为16的n次方,n是长度减2再减索引加1
res += tmp * Math.pow(16, mat.length() - 2 - i + 1);
}
System.out.println(res);
}
}
