Java

[JAVA] 진법 변환 정리 (n진수 <-> 10진수)

cornarong 2021. 8. 15. 19:18

 

 

1. 10진수 -> n진수

* 변환하기 전에 확인!

10진수를 제외한 나머지 진수는 String으로 받아야 한다. -> int는 전부 10진수로 인식

2진수, 8진수, 16진수는 아래와 같이 Binary, Octal, Hex함수가 존재한다. 

물론 toString(int n, int radix)로 사용해도 무관하다.

 

테스트 코드

public class Solution {
    public static void main(String[] args) {
        // 테스트를 위한 10진수 값 = 25
        int a = 25;

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

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

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

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

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

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

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

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

출력결과


2. n진수 -> 10진수

* 변환하기 전에 확인!

String타입으로 받은 n진수 값을 Integer.parseInt(string s, int radix) 함수에서 's'변수에 넣고 넣은 값이 몇 진수 값 인지 'radix'에 넣어 알려주어야 한다.

 

테스트 코드

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

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

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

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

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

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

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

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

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

출력결과