一、16进制转10进制
public static BigDecimal hexToDecimal(String hex) {
BigDecimal result = new BigDecimal(0);
BigDecimal number = new BigDecimal(0);
int k = 0;
for (int i = hex.length() - 1; i >= 0; i--) {
char str = hex.charAt(i);
if (str <= '9') {
number = new BigDecimal(Integer.parseInt(String.valueOf(str)) * Math.pow(16, k));
}
if (str == 'A') {
number = new BigDecimal(10 * Math.pow(16, k));
}
if (str == 'B') {
number = new BigDecimal(11 * Math.pow(16, k));
}
if (str == 'C') {
number = new BigDecimal(12 * Math.pow(16, k));
}
if (str == 'D') {
number = new BigDecimal(13 * Math.pow(16, k));
}
if (str == 'E') {
number = new BigDecimal(14 * Math.pow(16, k));
}
if (str == 'F') {
number = new BigDecimal(15 * Math.pow(16, k));
}
k++;
result = result.add(number);
}
return result;
}