HJ5

题目描述
写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。

输入描述:
输入一个十六进制的数值字符串。注意:一个用例会同时有多组输入数据,请参考帖子https://www.nowcoder.com/discuss/276处理多组输入的问题。

输出描述:
输出该数值的十进制字符串。不同组的测试用例用\n隔开。

示例1
输入
0xA
0xAA
输出
10
170

// 手动解析如下,还可以使用Integer.decode(str)方法解析,或是用Integer.parseInt(str,radis)radis为进制数


import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()){
            String str = scanner.nextLine();
            StringBuilder stringBuilder=new StringBuilder(str.substring(2));
            stringBuilder.reverse();
            int res = 0;
            for (int i = 0; i < stringBuilder.length(); i++) {
                switch (stringBuilder.charAt(i)){
                    case 'A':{
                        res+= 10 * Math.pow(16,i);
                        break;
                    }
                    case 'B':{
                        res+= 11 * Math.pow(16,i);
                        break;
                    }
                    case 'C':{
                        res+= 12 * Math.pow(16,i);
                        break;
                    }
                    case 'D':{
                        res+= 13 * Math.pow(16,i);
                        break;
                    }
                    case 'E':{
                        res+= 14 * Math.pow(16,i);
                        break;
                    }
                    case 'F':{
                        res+= 15 * Math.pow(16,i);
                        break;
                    }
                    default:{
                        res += Integer.parseInt(stringBuilder.substring(i,i+1))  * Math.pow(16,i);
                        break;
                    }
                }
            }
            System.out.println(res);


        }
    }
}

posted @ 2021-01-24 21:44  tanjr  阅读(299)  评论(0编辑  收藏  举报