题解 | #进制转换#

进制转换

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);
        }
    }
}

全部评论

相关推荐

字节一直是我的白月光,考虑到转正还是拒了日常实习。
从明天开始狠狠卷JV...:为什么你释放的offer没流到我头上
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-01 10:56
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务