主函数部分
public class Main {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int i=0,c;
String k;
ArrayList<String> list=new ArrayList<String>();
int a=input.nextInt();
input.nextLine();
do {
k=input.nextLine();
list.add(k);
i++;
}while(i<a);
for(i=0;i<a;i++) {
c=(int) (Zhuan(list.get(i)));
show(c);
}
}
}
16进制转10进制整数
public static double Zhuan(String s) {
char sc[] =s.toCharArray();
int i;
double sum=0;
double[] m=new double[s.length()];
for(i=0;i<s.length();i++) {
if(Character.isDigit(sc[i])) {
m[i]=(sc[i]-'0')*Math.pow(16,s.length()-i-1);
}
else
if(Character.isLetter(sc[i])) {
if(sc[i]=='A') {
m[i]=10*Math.pow(16,s.length()-i-1);
}
if(sc[i]=='B') {
m[i]=11*Math.pow(16,s.length()-i-1);
}
if(sc[i]=='C') {
m[i]=12*Math.pow(16,s.length()-i-1);
}
if(sc[i]=='D') {
m[i]=13*Math.pow(16,s.length()-i-1);
}
if(sc[i]=='E') {
m[i]=14*Math.pow(16,s.length()-i-1);
}
if(sc[i]=='F') {
m[i]=15*Math.pow(16,s.length()-i-1);
}
}
}
for(i=0;i<s.length();i++) {
sum=sum+m[i];
}
return sum;
}
10进制转8进制输出
public static void show(int c) {
String a="";
while(c>0) {
a=c%8+a;
c=c/8;
}
System.out.println(a);
}