进制转换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); } } }