进制转换

2018-09-07  本文已影响0人  知_秋_

写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )

输入描述:

输入一个十六进制的数值字符串。

输出描述:

输出该数值的十进制字符串。

示例1

输入

0xA

输出

10
解法:
    public static String str0xToDecimalSystem(String str0x0){
        int sum = 0;
        int length = str0x0.length();
        String str0x = str0x0.substring(2, length);
        length -=2;
        for(int i=0; i<length; i++){
            // 从低位遍历字符
            char place = str0x.charAt(length - i -1);
            // 当前位的字符数字
            int placeNum;
            if ('A' <= place && place <= 'F') {
                placeNum = place - 'A' + 10;
            } else {
                placeNum = Integer.parseInt(String.valueOf(place));
            }
            // 按权相加
            placeNum *= Math.pow(16, i);
            sum += placeNum;
        }
        return String.valueOf(sum);
    }
上一篇下一篇

猜你喜欢

热点阅读