递归实现的进制转换
//二转十
public static int twoToTen(String a,int inx){
if(a.length()==0){
return 0;
}
int temp = Integer.parseInt(""+a.charAt(a.length()-1))*2;
int res = 1;
if(temp==0){
res = 0;
}else{
for(int i=0;i<inx;i++){
res =res * temp;
}
}
return res+twoToTen(a.substring(0,a.length()-1),inx+1);
}
//二转八
public static String twoToEight(String a){
int len = a.length();
if(len==0){
return "";
}
String temp = a;
String nextStr = "";
if(len>3){
temp = a.substring(len-3,len);
nextStr = a.substring(0,len-3);
}
String res = twoToTen(temp,0)+"";
return twoToEight(nextStr)+res;
}
//二转十六
public static String twoToSixteen(String a){
int len = a.length();
if(len==0){
return "";
}
String temp = a;
String nextStr = "";
if(len>4){
temp = a.substring(len-4,len);
nextStr = a.substring(0,len-4);
}
String res = twoToTen(temp,0)+"";
int intres = Integer.parseInt(res);
if(intres>9){
res = (char)(intres + 55)+"";
}
return twoToSixteen(nextStr)+res;
}
//十转二
public static String tenToTwo(int a){
int y = a%2;
int s = a/2;
if(s<2){
return s+""+y;
}
return tenToTwo(s)+y;
}