본문 바로가기

Language/JAVA

[JAVA] 진법 변환 정리

1. N진수 -> 10진수 변환

Integer.parseInt(string s, int radix) 함수를 사용한다.

s는 숫자로 이루어진 문자열, radix는 몇 진수의 숫자인지를 의미한다.

ex) Integer.parseInt("1000", 2) : 2진수 숫자 1000을 10진수로 변환

 

 

예시

 

import java.util.Scanner;

public class example {
    public static void main(String[] args) {
        String a = "101011";

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

        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));
    }
}

 

결과

 

 

 

2. 10진수 -> N진수 변환

Integer.toString(int i, int radix) 함수를 사용한다.

 

int 타입은 해당 타입의 숫자를 10진수로 처리하기 때문에 10진수를 제외한 나머지 진수는 String으로 받아야 한다.

s는 숫자, radix는 몇 진수의 숫자로 변환할 것인지를 의미한다.

ex) Integer.toString(1000, 2) : 10진수 숫자 1000을 2진수로 변환

 

 

추가로

 

2진수, 8진수, 16진수는 toBinaryString(), toOctalString(), toHexString()함수가 존재한다. 

 

 

예시

import java.util.Scanner;

public class example {
    public static void main(String[] args) {
        int a = 77;

        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));
    }
}

 

결과