미운 오리 새끼의 우아한 개발자되기

[Java] 진법 변환 본문

Java/Java 기본기

[Java] 진법 변환

Serina_Heo 2022. 2. 23. 14:32

Programmers의 Lv1의 3진법 뒤집기 문제를 풀다가 찾아본 Java method로 진법 변환 완전 쉽게 하는 방법.

 

1.  n진수 -> 10진수

public class Solution {
    public static void main(String[] args) {
        int num = 10; //10진수 값

        System.out.println("10진수 -> 2진수");
        System.out.println(Integer.toBinaryString(num));
        System.out.println(Integer.toString(num,2));

        System.out.println("10진수 -> 3진수");
        System.out.println(Integer.toString(num,3));

        System.out.println("10진수 -> 4진수");
        System.out.println(Integer.toString(num,4));

        System.out.println("10진수 -> 5진수");
        System.out.println(Integer.toString(num,5));

        System.out.println("10진수 -> 6진수");
        System.out.println(Integer.toString(num,6));

        System.out.println("10진수 -> 7진수");
        System.out.println(Integer.toString(num,7));

        System.out.println("10진수 -> 8진수");
        System.out.println(Integer.toOctalString(num));
        System.out.println(Integer.toString(num,8));

        System.out.println("10진수 -> 16진수");
        System.out.println(Integer.toString(num,16));
        System.out.println(Integer.toHexString(num));
    }
}

 

2. 10진수 -> n진수

public class Solution {
    public static void main(String[] args) {
        // 테스트를 위한 n진수 값 = 25
        String numInStr = "110011";

        System.out.println("2진수 -> 10진수");
        System.out.println(Integer.parseInt(numInStr,3));

        System.out.println("3진수 -> 10진수");
        System.out.println(Integer.parseInt(numInStr,3));

        System.out.println("4진수 -> 10진수");
        System.out.println(Integer.parseInt(numInStr,4));

        System.out.println("5진수 -> 10진수");
        System.out.println(Integer.parseInt(numInStr,5));

        System.out.println("6진수 -> 10진수");
        System.out.println(Integer.parseInt(numInStr,6));

        System.out.println("7진수 -> 10진수");
        System.out.println(Integer.parseInt(numInStr,7));

        System.out.println("8진수 -> 10진수");
        System.out.println(Integer.parseInt(numInStr,8));

        System.out.println("16진수 -> 10진수");;
        System.out.println(Integer.parseInt(numInStr,16));
    }
}

 

코딩테스트를 잘 풀기 위해서는 문제해결능력도 좋아야하지만, 이렇게 해당 언어가 지원하는 다양한 메서드를 아는 것도 중요한 것 같다.

 

Ref: https://cornarong.tistory.com/48?category=993289