题解 | #进制转换#

进制转换

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


import java.util.*;
public class Main{
    public static void main(String[] args) {
        // 接受一个十六进制,输出十进制
        Map<Character,Integer> map = new HashMap<>();
      // 将十六进制位字符对应的数值都写入map集合中,可以根据输入十六进制数来获得对应的值
        map.put('0',0);map.put('1',1);map.put('2',2);map.put('3',3);
        map.put('4',4);map.put('5',5);map.put('6',6);map.put('7',7);
        map.put('8',8);map.put('9',9);map.put('A',10);map.put('B',11);
        map.put('C',12);map.put('D',13);map.put('E',14);map.put('F',15);
        // 处理输入
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()) {
            StringBuffer bf = new StringBuffer(sc.nextLine().substring(2)).reverse();// 去掉十六进制的标志字符,例如0xAB,这样处理之后就是获得AB,但是我们需要从个位开始算起,最后反转一下,变成BA
            int res = 0;// 这个是用来统计结果的
            for(int i = 0; i < bf.length(); i++){
                res += Math.pow(16,i) * map.get(bf.charAt(i));// 十六进制转十进制: 16^权重 * 十六进制数值 
            }
            System.out.println(res);
        }
    }
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-07 12:04
毕业生招你惹你了,问一个发薪日来一句别看网上乱七八糟的你看哪个工作没有固定发薪日扭头就取消了面试就问了一句公司都是这个态度吗还搞上人身攻击了...
程序员小白条:呃呃呃,都还没面试,我都不会问这么细,何况通不通过,去不去都另说,你没实力和学历的话,在外面就这样,说实话没直接已读不回就不错了,浪费时间基本上
点赞 评论 收藏
分享
下北澤大天使:你是我见过最美的牛客女孩😍
点赞 评论 收藏
分享
程序员牛肉:主要是因为小厂的资金本来就很吃紧,所以更喜欢有实习经历的同学。来了就能上手。 而大厂因为钱多,实习生一天三四百的就不算事。所以愿意培养你,在面试的时候也就不在乎你有没有实习(除非是同级别大厂的实习。) 按照你的简历来看,同质化太严重了。项目也很烂大街。 要么换项目,要么考研。 你现在选择工作的话,前景不是很好了。
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

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