题解 | #进制转换#

进制转换

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-17 11:27
门头沟学院 Java
点赞 评论 收藏
分享
06-11 17:39
门头沟学院 Java
小呆呆的大鼻涕:卧槽,用户彻底怒了
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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