package jinzhizhuanhuan;
import java.util.Scanner;
public class HextoDecimal {
public static int compare(char ch){//将A~F转换为对应的十进制数
int[]a=new int[75];
int k=65,i=10;//A的assic码为65
while(i<16)a[k++]=i++;//a['A']=10,依次类推
return a[ch];
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
//StringBuider hex=new StringBuilder();
String str=sc.nextLine();
//StringBuilder sb=new StringBuilder(str);
String hex=new StringBuilder(str).reverse().toString();
//System.out.println(hex);
int t=0;
long result=0;
while(t<hex.length()){
if('A'<=hex.charAt(t)&&hex.charAt(t)<='F'){
int b=compare(hex.charAt(t));
//System.out.println(b);
result+=b*(long)Math.pow(16,t++);
}
else{
int tem=hex.charAt(t)-'0';
result+=tem*(long)Math.pow(16,t++);
}
}
System.out.println(result);
}
}
}
当然还有一个更简单的办法,就是使用java类来实现
import java.util.Scanner;
public class Main{
public static void main(String[]args){
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
String hex=sc.nextLine();
System.out.println(Long.parseLong(hex,16));
}
}
}