16进制字符串转数字
如:
0x000000000000000000000000000000000000000000000000000f4913e6c1dcd8
public static BigDecimal sixteenToTen(String number){
if (number == null || number.length() < 2){
return null;
}
String numberStr = number.substring(2);
BigDecimal sum = BigDecimal.ZERO;
for(int index = 0; index < numberStr.toCharArray().length; index++) {
Integer tmp = Integer.parseInt(String.valueOf(numberStr.charAt(index)), 16);
double baseNumber = tmp.doubleValue();
double indexNumber = numberStr.length() - index - 1;
BigDecimal a = BigDecimal.valueOf(Math.pow(16, indexNumber));
BigDecimal b = a.multiply(BigDecimal.valueOf(baseNumber));
sum = sum.add(b);
}
return sum;
}
结果:4302474475330776
4223

被折叠的 条评论
为什么被折叠?



