套用进制转换的公式,即第n位(从低位开始)数字乘以进制的n-1次幂,加和
import java.util.Scanner; import java.lang.Math; public class Main{ public static void main(String[] args){ Scanner in = new Scanner(System.in); while(in.hasNextLine()){ String s = in.nextLine(); //读入数字 int count = 0; //记录转换后的数字 for(int i=0; i < s.length()-2; i++){ //由于前面两位是'0x',故从第三位开始 char tc = s.charAt(i+2); int t = 0; //记录字母转换成的数值 //将字母转换为数值 if(tc>='0' && tc<='9') t = tc - '0'; //字母'A'/'a'~'F''f'对应数字10~15 else if(tc>='A' && tc<='F') t = tc - 'A' + 10; else if(tc>='a' && tc<='f') t = tc - 'a' +10; //计算加和 count += t * Math.pow(16, s.length()-i-3); } System.out.println(count); } } }