41、十六进制转化为十进制
写一个程序,接受一个十六进制的数,输出该数值的十进制表示。
数据范围: 1<=n<= 2^31-1
输入描述
输入一个十六进制的数值字符串
输出描述
输出该数值的十进制字符串
示例:
输入:
0xAA
输出:
170
思路
- 读取十六进制数,并将其转换成十进制存储,最后用 %x 输出该数的十进制表示即可
- 十六进制转十进制:从高位开始,每位乘以16的n-1次方,再相加,即可得出十进制数。(n为十六进制数的位数)
```
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println(HtoD("11A"));
}
static int HtoD(String num){
int ans = 0;
for (int i = num.length()-1;i >= 0;i--){
if (num.charAt(i) >= 65 & num.charAt(i) <= 91){
ans += (num.charAt(i) - 55) * Math.pow(16,num.length() - i - 1);
}else {
ans += (num.charAt(i) - 48) * Math.pow(16,num.length() - i - 1);
}
}
return ans;
```