题目是 写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )
例如输入0xA 输出 10 主要思路就是把输入的字符串转为数组,然后一次判断每一个对应的位数乘以16的n次方就行
public class Test_3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String shiliuUp[] = new String[]{"A","B","C","D","E","F"};
int shijinzhi[] = new int[]{10,11,12,13,14,15};
while(sc.hasNext()){
String inputs=sc.next();
inputs = inputs.substring(2);
int sum =0;
int length = inputs.length()-1;
char[] arr = inputs.toCharArray();
for (int i=0;i<arr.length;i++){
boolean hat = false;
String cur = String.valueOf(arr[i]);
for(int j=0 ; j<shiliuUp.length ; j++){
if (cur.equals(shiliuUp[j])){
System.out.println("第"+i+"个数是ABCDEF");
sum = (int) (sum + shijinzhi[j] * Math.pow(16, length)) ;
hat = true;
}
}
if(!hat){
sum = (int) (sum + Integer.valueOf(cur) * Math.pow(16, length)) ;
System.out.println(Integer.valueOf(cur) +"* 16 ^"+length+"="+sum);
}
length--;
}
System.out.println(sum);
}
}
}