Day79:十六进制转化为十进制

46 阅读1分钟

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;
```