问题描述
Java 代码实现
方案一:使用 BigInteger 类直接转换。
import java.math.BigInteger;
import java.util.*;
public class Main{
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println(new BigInteger(in.next(), 16).toString(10));
in.close();
}
}
方案二:直接转换
import java.util.*;
public class Main{
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String s = in.next();
long result = 0;
Map<Character, Integer> map = new HashMap<Character, Integer>();
map.put('0', 0);map.put('1', 1);map.put('2', 2);map.put('3', 3);
map.put('4', 4);map.put('5', 5);map.put('6', 6);map.put('7', 7);
map.put('8', 8);map.put('9', 9);map.put('A', 10);map.put('B', 11);
map.put('C', 12);map.put('D', 13);map.put('E', 14);map.put('F', 15);
int len = s.length();
for (int i = len-1, j = 0; i >= 0; --i, ++j) {
result += map.get(s.charAt(i)) * (long)Math.pow(16, j);
}
System.out.println(result);
in.close();
}
}