/*
以下三个点:
-----------------------------------------
①、16进制的表示 0x(0x是固定写法)数字或者字母(A-F)可以是小写,英文字母A,B,C,D,E,F分别表示数字10~15。
冯16进1,
例如:0xAF=175 的十进制如下:
相当于 10*16¹ + 15*16º = 160 +15 =175
-----------------------------------------
②、字符减'0'可以到相应的整数,在ASCII表中对应的数值换算运算。
-----------------------------------------
③、Math.pow(a,b) , 含义是a的b次方
*/
//解法一:
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner scan=new Scanner(System.in);
while(scan.hasNext()){
String str = scan.nextLine();
int count = 0;
//由于前面两位是'0x',故从第三位开始
str = str.substring(2,str.length());
//遍历得到的除了0x之外的字符串的部分
for(int i =0; i<str.length();i++){
int number = 0;
if(str.charAt(i) >= '0' && str.charAt(i) <= '9'){
//转成相应的数值
number = str.charAt(i) - '0';
//字母'A'/'a'~'F''f'对应数字10~15
}else if (str.charAt(i)>= 'a' && str.charAt(i) <= 'f'){
number = str.charAt(i) - 'a' + 10;
}else if (str.charAt(i)>= 'A' && str.charAt(i) <= 'F'){
number = str.charAt(i) - 'A' + 10;
}
count += number * Math.pow(16,str.length()-1-i);
}
System.out.println(count);
}
}
}
//解法二: 直接用Integer.parseInt("String", 进制) 进行转换。
// import java.util.*;
// public class Main{
// public static void main(String[] args){
// Scanner scan=new Scanner(System.in);
// while(scan.hasNext()){
// String str=scan.next();
// System.out.println(Integer.parseInt(str.replaceAll("x",""),16));
// }
// }
// }