思路:十进制为逢十进一,1,2,3,4,5,6,7,8,9,10,11
十六进制:1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
1.将输入的字符串用数组保存起来
十进制与八进制与十六进制之间的转换:直接法—把十进制转八进制或者十六进制按照除8或者16取余,直到商为0为止。
八进制或者十六进制转成十进制方法为:把八进制、十六进制数按权展开、相加即得十进制数。
代码如下:
package 基础训练;
import java.util.*;
import java.math.*;
public class 十六进制转十进制 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
char[] arry=new char[10];
//String[] a=new String[10];
String s=in.next();
arry=s.toCharArray();
int len=arry.length;
long sum=0;
for(int i=0;i<len;i++){long k=(long)Math.pow(16, len-i-1);
switch(arry[i]){
case '0':break;
case '1':sum+=1*k;break;
case '2':sum+=2*k;break;
case '3':sum+=3*k;break;
case '4':sum+=4*k;break;
case '5':sum+=5*k;break;
case '6':sum+=6*k;break;
case '7':sum+=7*k;break;
case '8':sum+=8*k;break;
case '9':sum+=9*k;break;
case 'A':sum+=10*k;break;
case 'B':sum+=11*k;break;
case 'C':sum+=12*k;break;
case 'D':sum+=13*k;break;
case 'E':sum+=14*k;break;
case 'F':sum+=15*k;break;
}
}
System.out.println(sum);
}
}