题解 | #进制转换#

进制转换

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

/*
以下三个点:
-----------------------------------------
①、16进制的表示 0x(0x是固定写法)数字或者字母(A-F)可以是小写,英文字母A,B,C,D,E,F分别表示数字10~15。
冯16进1,
例如:0xAF=175 的十进制如下:
    相当于 10*16¹ + 15*16º = 160 +15 =175 
-----------------------------------------
②、字符减'0'可以到相应的整数,在ASCII表中对应的数值换算运算。
-----------------------------------------
③、Math.pow(a,b) , 含义是a的b次方

*/
//解法一:
import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner scan=new Scanner(System.in);
        while(scan.hasNext()){
            String str = scan.nextLine();
            int count = 0;
            //由于前面两位是'0x',故从第三位开始
            str = str.substring(2,str.length());
            //遍历得到的除了0x之外的字符串的部分
            for(int i =0; i<str.length();i++){
                int number = 0;
                if(str.charAt(i) >= '0' && str.charAt(i) <= '9'){
                    //转成相应的数值
                    number = str.charAt(i) - '0';
                //字母'A'/'a'~'F''f'对应数字10~15
                }else if (str.charAt(i)>= 'a' && str.charAt(i) <= 'f'){
                    number = str.charAt(i) - 'a' + 10;
                }else if (str.charAt(i)>= 'A' && str.charAt(i) <= 'F'){
                    number = str.charAt(i) - 'A' + 10;
                }
                count += number * Math.pow(16,str.length()-1-i);
            }
            System.out.println(count);
        }
    }
}


//解法二: 直接用Integer.parseInt("String", 进制) 进行转换。
// import java.util.*;

// public class Main{
//     public static void main(String[] args){
//         Scanner scan=new Scanner(System.in);
//         while(scan.hasNext()){
//             String str=scan.next();
//            System.out.println(Integer.parseInt(str.replaceAll("x",""),16));

//         }
//     }
// }
全部评论
楼主,写的好
点赞 回复 分享
发布于 2022-05-10 23:13

相关推荐

评论
19
5
分享
正在热议
# 25届秋招总结 #
439711次浏览 4483人参与
# 春招别灰心,我们一人来一句鼓励 #
41326次浏览 523人参与
# 北方华创开奖 #
107218次浏览 598人参与
# 地方国企笔面经互助 #
7908次浏览 18人参与
# 虾皮求职进展汇总 #
113287次浏览 880人参与
# 实习,投递多份简历没人回复怎么办 #
2453574次浏览 34845人参与
# 阿里云管培生offer #
119590次浏览 2219人参与
# 实习必须要去大厂吗? #
55548次浏览 959人参与
# 同bg的你秋招战况如何? #
75024次浏览 547人参与
# 提前批简历挂麻了怎么办 #
149746次浏览 1975人参与
# 投递实习岗位前的准备 #
1195558次浏览 18545人参与
# 你投递的公司有几家约面了? #
33165次浏览 188人参与
# 双非本科求职如何逆袭 #
661735次浏览 7392人参与
# 机械人春招想让哪家公司来捞你? #
157584次浏览 2267人参与
# 如果公司给你放一天假,你会怎么度过? #
4708次浏览 53人参与
# 如果你有一天可以担任公司的CEO,你会做哪三件事? #
11184次浏览 253人参与
# 发工资后,你做的第一件事是什么 #
12333次浏览 61人参与
# 工作中,努力重要还是选择重要? #
35493次浏览 384人参与
# 参加完秋招的机械人,还参加春招吗? #
20068次浏览 240人参与
# 实习想申请秋招offer,能不能argue薪资 #
39197次浏览 314人参与
# 我的上岸简历长这样 #
451849次浏览 8086人参与
# 非技术岗是怎么找实习的 #
155829次浏览 2120人参与
牛客网
牛客企业服务