1.實現的功能
實現從進制A轉換到進制B
2.工具類
/**
* Function:進制轉換
* Created by xuzhuyun on 2017/12/8.
*/
public class Operation {
/**
* 總進制轉換
*
* @param typeFrom 從進制
* @param typeTo 到進制
* @param transferText 需要轉換的數
* @return
*/
public String transfer(String typeFrom, String typeTo, String transferText) {
return from10(typeTo, to10(typeFrom, transferText));
}
/**
* 轉10進制
*
* @param from1 從進制
* @param txt 要轉換的數
* @return 轉換後結果
*/
private int to10(String from1, String txt) {
int from = Integer.parseInt(from1);
int sum = 0;
int i = txt.length() - 1;
int leng = i;
while (i >= 0) {
// 判斷輸入文本的當前取出的char值是數字,並且值不爲0
if (Character.isDigit(txt.charAt(i))) {
if (txt.charAt(i) != '0') {
int temp = Integer.parseInt(String.valueOf(txt.charAt(i)));
for (int j = 0; j < leng - i; j++) {
temp *= from;
}
sum += temp;
}
} else {
int temp = 0;
switch (txt.charAt(i)) {
case 'A':
temp = 10;
break;
case 'B':
temp = 11;
break;
case 'C':
temp = 12;
break;
case 'D':
temp = 13;
break;
case 'E':
temp = 14;
break;
case 'F':
temp = 15;
break;
default:
return 0;
}
for (int j = 0; j < leng - i; j++) {
temp *= from;
}
sum += temp;
}
i--;
}
return sum;
}
/**
* 從10進制轉爲其他進制
*
* @param to1 要轉換後的進制
* @param num 要轉的10進制數
* @return 轉換後的值(String)
*/
private String from10(String to1, int num) {
int to = Integer.parseInt(to1);
String jg = "";
while (num != 0) {
switch (num % to) {
case 10:
jg = "A" + jg;
break;
case 11:
jg = "B" + jg;
break;
case 12:
jg = "C" + jg;
break;
case 13:
jg = "D" + jg;
break;
case 14:
jg = "E" + jg;
break;
case 15:
jg = "F" + jg;
break;
default:
jg = String.valueOf(num % to) + jg;
break;
}
num = num / to;
}
return jg;
}
}