题解 | #进制转换#

进制转换

http://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        //当下一行有输入时
        while (in.hasNextLine()) {
            String s = in.nextLine();    //用字符串表示十六进制数
            int count = 0;               //表示十进制结果
            //越过0x,从第三个字符开始循环
            for (int i = 0; i < s.length() - 2; i++) {
                char tc = s.charAt(i + 2);//取出字符
                int t = 0;                //表示字符对应的十进制数
                //十六进制转换为十进制
                if (tc >= '0' && tc <= '9')
                    t = tc - '0';
                else if (tc >= 'A' && tc <= 'F')
                    t = tc - 'A' + 10;
                else if (tc >= 'a' && tc <= 'f')
                    t = tc - 'a' + 10;
                //乘上它所在位置对应的十八的N次方
                count += t * Math.pow(16, s.length() - 2 - i - 1);
            }
            System.out.println(count);
        }
    }
}

全部评论

相关推荐

努力成为C语言高手:质疑大祥老师,理解大祥老师,成为大祥老师
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务