不考虑输入,直接使用对应数字乘上16的对应位数的次方之和即可
如果考虑输入,且为16进制的字符串:
public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(sc.hasNext()){ //输入16进制字符串 0xABCDEF String hexString = sc.nextLine(); long n = HexToDec(hexString); System.out.println(n); } } private static long HexToDec(String hexString) { String s = hexString.substring(2,hexString.length()); int len = s.length(); long ret = 0; for(int i=0;i<s.length();i++){ char ch = s.charAt(i); int t = 0; //处理字符为对应的数字 if(ch>='0'&& ch<='9'){ t = ch-'0'; } if(ch>='A'&&ch<='F'){ t = ch-'7'; } ret += t*Math.pow(16,len-1); len--; } return ret; }