题解 | #进制转换#

进制转换

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

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        String str = in.nextLine();
	  //取出表示数字的部分,并转化为统一的小写
        String num16 = str.toLowerCase().substring(2,str.length());
        int num = 0;
	  //按位处理每一个数字
        for(int i = 0; i < num16.length();i++){
            int indexNum = changeNumber(num16.charAt(num16.length()-i-1));
            num += indexNum * Math.pow(16,i);// 注意乘方的表示方式
        }
        System.out.println(num);
    }
    public static int changeNumber(char ch){
        switch(ch){
            case 'a':
                return 10;
            case 'b':
                return 11;
            case 'c':
                return 12;
            case 'd':
                return 13;
            case 'e':
                return 14;
            case 'f':
                return 15;
            default :
                return Integer.parseInt(String.valueOf(ch));
        }
    }
}

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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