코딩 공부/Java
[Java] 진법 변환
by 현장
2025. 12. 20.
Java 진법 변환
🏷️ n 진법을 10진법으로
private static int convertDecimal(String num, int base) {
int answer = 0;
// 자리수 계산을 위한 값
int pow = 1;
for (int i = num.length() - 1; i >= 0; i--) {
int digit;
char now = num.charAt(i);
if (now >= '0' && now <= '9') {
// 숫자인 경우
digit = now - '0';
} else {
// 영어인 경우
digit = now - 'A' + 10;
}
// 자릿수 계산
answer += digit * pow;
// 자릿수 수정
pow *= base;
}
return answer;
}
✅ 메소드 사용 방법
// 첫번째 변수에 변환할 수, 두번째 변수에는 현제 진법
int convert = Integer.parseInt("1010110101", 2);
🏷️ 10 진법을 n진법으로
private static String convertBase(int num, int base) {
StringBuilder answer = new StringBuilder();
while (num > 0) {
// 나누기 전 나머지로 계산
int now = num % base;
if (now < 10) {
// 10보다 작은 경우 그대로 저장
answer.append(now);
} else {
// 10 이상인 경우 문자로 변환
char conv = (char) (now - 10 + 'A');
answer.append(conv);
}
// 변환할 진법으로 나눠줌
num /= base;
}
// 문자열의 역순으로 만들어야함
return answer.reverse().toString();
}
✅ 메소드 사용 방법
// 첫번째 변수는 변환할 값, 두번째 변수는 변환할 진법
String convert = Integer.toString(decimal, 2);
📖 Reference
IT is True