📌 10진수 => n진수
Integer.toHexString(num); // 10진수->16진수
Integer.toOctalString(num); // 10진수->8진수
Integer.toBinaryString(num); // 10진수->2진수
Integer.toString(num, radix); // 10진수 -> (radix)진수
📌 n진수->10진수
Integer.parseInt(str,radix);
📌 메소드 없이 진법 변환
public static void conversion(int inputNumber, int radix){
//더 해야할 것이 많기에 String 대신 StringBuffer사용
StringBuffer sb = new StringBuffer();
int number = inputNumber;
//변환할 숫자가 0보다 크면 계속 반복한다.
while(number >0){
// radix으로 나누어 10보다 작다면 바로 append
if(number % radix < 10){
sb.append(number % radix);
// 만약 radix이 10보다 큰 경우 알파벳으로 표기해야한다.
} else {
sb.append((char)(number % radix - 10 + 'A')); //이해가 안된다면 아스키 코드를 생각해보자
}
number /= radix;
}
// StringBuilder의 reverse를 사용해야 정상적으로 출력 가능. 안그러면 거꾸로 출력됨
System.out.println("정수 " + inputNumber + "를 " + radix + "진법 변환시 : " + sb.reverse());
}