算法n 进制转m进制:
public class Test25 {
private static String shu = "0123456789abcdefghijklmnopqrstuvwxyz";
public static void main(String[] args) {
//算法 n 进制转m 进制
System.out.println('l'-'a'+10);
String str = "ff";
int sourceJin = 16;
int tagJin = 10;
Test25 test25 = new Test25();
String exchageNum = test25.exchageNum(str,sourceJin,tagJin);
System.out.println("exchageNum:"+exchageNum);
}
public String exchageNum(String num,Integer sourceJin,Integer tagJin){
Integer source10 = getNTo10Object(num,sourceJin);
if(tagJin == 10){
return String.valueOf(source10);
}
String tagStr = get10ToNObject(source10,tagJin);
return tagStr;
}
public Integer getNTo10Object(String str,Integer sourceJin){
char[] chars = shu.toCharArray();
int source10 = 0;
int j = 0;
// 16->10
for (int i = str.length() - 1; i >= 0; i--) {
char indexChar = str.charAt(i);
String weiStr = indexChar<='9'?indexChar+"":(indexChar-'a')+10+"";
Integer weiInt = Integer.parseInt(weiStr);
source10 += weiInt * Math.pow(sourceJin, (j++));
}
return source10;
}
public String get10ToNObject(Integer source10,Integer tagJin){
char[] chars = shu.toCharArray();
String tagValue = "";
while (source10>0){
int tagwei = source10%tagJin;
tagValue= chars[tagwei]+tagValue;
source10 = source10/tagJin;
}
return tagValue;
}
}
输出结果: