class Main {
// 10진수를 N진수로 변환
private static String convertTenAsNRadix(int number, int radix) {
return Integer.toString(number, radix);
}
// N진수 숫자를 10진수로 변환
private static int convertNToTenRadix(String number, int radix) {
return Integer.parseInt(number, radix);
}
}
알고리즘을 통해 구현하는 경우 (대문자)
class Main {
// 10진수를 N진수로 변환
private static String convertTenAsNRadix(int number, int radix) {
StringBuilder sb = new StringBuilder();
while(number > 0) {
int remain = number % radix;
if (remain < 10) {
// int remain 예로 4라고 하면 10 밑이므로 char 0을 더해주면 char 4(52)
sb.append((char)(remain + '0');
} else {
sb.append((char)(remain - 10 + 'A');
}
number /= radix;
}
return sb.reverse().toString();
}
// N진수 숫자를 10진수로 변환
private static int convertNToTenRadix(String number, int radix) {
int temp = 1;
int result = 0;
for (int i = number.length()-1; i >= 0; i--) {
char c = number.charAt(i);
if ('A' <= c && c <= 'Z') {
// char c에서 char A를 빼면 아스키 코드값,
// +10을 통해서 0~9를 넘는 범위로 조정
result += (int)(c - 'A' + 10) * temp;
} else {
// char c가 0~9범위에 있으므로 char '0'을 빼면 int 값이됨
result += (int)(c - '0') * temp;
}
temp *= radix;
}
return result;
}
}