题解 | #进制转换#

进制转换

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

1、m的n次方 :Math.pow(m,n);

2、char 转 int : Integer.ParseInt(String.valueOf(char));

3、string 反转:

(1)转成 stringBuffer : StringBuffer sb = new StringBuffer(str);

(2) 反转 :String reverseStr = sb.reverse().toString();

4、十六进制以0x 开头,不计算

5、十六进制计算:16 x (m的 0、1、2 ... 次方)

--------------------------------------------------------------------------------------------------------------------------

直接使用API

十六进制 转 十进制

int number = Integer.parseInt(16进制str, 16); //这里的str去掉十六进制的 0X 开头。

import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
       Scanner sc = new Scanner(System.in);
        String hex = sc.nextLine().substring(2).toUpperCase();
        Map<Integer,Integer> map = new HashMap<Integer, Integer>();

        int len = hex.length();
        int num = 0;
        int FIXED_NUMBER = 16;
        int sum = 0;
        StringBuffer sb = new StringBuffer(hex);
        String hexReverse = sb.reverse().toString();

        for (int i = 0; i < len; i++) {
            char c = hexReverse.charAt(i);
            //转换
            switch (c){
                case 'A':
                    num = 10;
                    break;
                case 'B':
                    num = 11;
                    break;
                case 'C':
                    num = 12;
                    break;
                case 'D':
                    num = 13;
                    break;
                case 'E':
                    num = 14;
                    break;
                case 'F':
                    num = 15;
                    break;
                default:
                    num = Integer.parseInt(String.valueOf(c));
            }
            map.put(i, num);
        }

        for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
            int pos = entry.getKey();
            int val = entry.getValue();
            sum += Math.pow(FIXED_NUMBER, pos) * val;
        }

        System.out.println(sum);
    }
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-25 17:55
点赞 评论 收藏
分享
07-19 13:28
长沙学院 Java
鸿哥鸿哥:学院(一本),感觉在脱ku子放屁,学院结尾的除了那几家出名的,一律按二本处理
点赞 评论 收藏
分享
06-10 21:15
门头沟学院 Java
宁阿:好多这种没🧠的公司,他们估计都不知道毕业的人不能给安排实习岗
实习吐槽大会
点赞 评论 收藏
分享
07-25 11:12
重庆大学 C++
既然这么缺人,为什么挂我呢
飞花断音:华为需要学历不高,但是很能干事儿,能吃苦也没怨言,愿意无偿加班,最好上有老下有小,不是独生子女,家庭条件不好,家在外地租房住,生活成本高,不会轻易跳槽,并且愿意接受低工资的奴仆任劳任怨地给任总的女儿买大别墅住
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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