본문 바로가기
코딩 공부/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

'코딩 공부 > Java' 카테고리의 다른 글

[Java] Java 정렬 알고리즘 구현  (0) 2025.10.01
[Java] Comparable과 Comparator  (0) 2025.04.04
[Java] Stream  (0) 2025.04.02
[Java] 팩토리 메소드  (0) 2024.07.13
[Java] DTO를 Record로 만드는 이유  (0) 2024.04.17