进制转换java

进制转换

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

import java.util.Scanner;
public class Main{
        public static void main(String[] args){
            Scanner sc = new Scanner(System.in);
            while(sc.hasNext()){
                String str = sc.nextLine();
                int len = str.length();
                //读取的16进制数表示的字符串后截取0x之后的部分
                char[] ch = (str.substring(2,len)).toCharArray();
                //创建一个int类型数组存储转换好的十进制数字
                int[] arr = new int[ch.length];
                //遍历由截取部分转换的char数组,将其中的字母转换成数字
                for(int i = 0;i < ch.length;i++){
                    if(ch[i] == 'A'){
                        arr[i] = 10;
                    }else if(ch[i] == 'B'){
                        arr[i]= 11;
                    }else if(ch[i] == 'C'){
                        arr[i] = 12;
                    }else if(ch[i] =='D'){
                        arr[i] = 13;
                    }else if(ch[i] == 'E'){
                        arr[i] = 14;
                    }else if(ch[i] == 'F'){
                        arr[i] = 15;
                    }else{
                        //其中的字节转换成数字
                        arr[i] = ch[i] - '0';
                    }
                }
                int res = 0;
                //完成计算
                for(int i = 0,j= arr.length-1;i < arr.length&&j>-1 ; i++,j--){
                    res += arr[j]*Math.pow(16,i);
                }
                System.out.println(res);

            }
        }
    }
全部评论

相关推荐

高斯林的信徒:武大简历挂?我勒个骚岗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务