Java 정수 이진수 변환

JavaBeginner
지금 연습하기

소개

이 랩에서는 Java 에서 정수를 이진수로 변환하는 방법을 배웁니다. 이 변환을 수행하는 여러 가지 방법이 있으며, 가장 일반적으로 사용되는 방법을 다룰 것입니다.

toBinaryString() 메서드 사용

toBinaryString() 메서드는 정수를 이진 문자열로 변환하는 가장 쉬운 방법입니다. 이 메서드는 int 를 이진수로 변환한 후 String 을 반환하는 Integer 클래스 메서드입니다.

public static String toBinaryString(int val)

여기서 val은 이진수 시스템으로 변환하려는 값입니다. 이 메서드는 이진 값을 문자열 형식으로 반환합니다.

public class IntegerToBinaryConverter {
    public static void main(String[] args) {
        int val = 183;
        System.out.println("Value in binary system is: " + Integer.toBinaryString(val));
    }
}

출력: Value in binary system is: 10110111

긴 나눗셈 방법 사용

이 방법은 완전히 수학적입니다. 32 비트 이진 표현을 고려하여 크기가 32 인 정수 배열을 선언합니다. 숫자를 2 로 나눌 때마다 나머지를 정수 배열 안에 저장합니다. 마지막으로 결과를 얻기 위해 역순으로 순회합니다.

public class IntegerToBinaryConverter {
    public static void main(String[] args) {
        int val = 183;
        int num[] = new int[32];
        int pos = 0;
        while (val > 0) {
            num[pos++] = val % 2;
            val = val / 2;
        }
        System.out.print("Value in binary system is: ");
        for (int i = pos - 1; i >= 0; i--) {
            System.out.print(num[i]);
        }
    }
}

출력: Value in binary system is: 10110111

비트 연산 사용

오른쪽 시프트 연산자를 사용하면 모든 값을 절반으로 만들 수 있으며, 비트 레벨에서 작업하므로 매우 저렴한 연산입니다. 나머지 사항은 위 예제에서 언급한 것과 동일합니다. 마지막으로, StringBuilder 객체에 저장된 값을 역순으로 사용하여 이진 형태로 올바르게 출력합니다.

public class IntegerToBinaryConverter {
    public static void main(String[] args) {
        int val = 183;
        StringBuilder binary = new StringBuilder(32);
        while (val > 0) {
            binary.append(val % 2);
            val >>= 1;
        }
        binary.reverse().toString();
        System.out.print("Value in binary system is: " + binary.reverse().toString());
    }
}

출력: Value in binary system is: 10110111

Integer.toString() 메서드 사용

java.lang.Integer 클래스에는 Integer.toString() 메서드를 사용하는 또 다른 흥미로운 방법이 있습니다. 이 메서드는 첫 번째 인수로 숫자를, 두 번째 인수로 기수 (여기서 기수는 숫자 체계의 밑수) 를 받습니다. 이진수의 경우 2, 8 진수의 경우 8, 16 진수의 경우 16 을 사용할 수 있습니다. 이 경우 이진수를 위해 기수를 2 로 설정합니다.

public class IntegerToBinaryConverter {
    public static void main(String[] args) {
        int val = 183;
        System.out.print("Value in binary system is: " + Integer.toString(val, 2));
    }
}

출력: Value in binary system is: 10110111

요약

이 랩에서는 Java 에서 정수를 이진수 체계로 변환하는 네 가지 다른 방법을 배웠습니다. 첫 번째 방법은 내장된 toBinaryString() 메서드를 사용하는 것이고, 두 번째는 긴 나눗셈 방법을 사용하는 것이며, 세 번째는 비트 조작을 사용하는 것이고, 네 번째는 Integer.toString() 메서드를 사용하는 것입니다.

각 방법에는 장단점이 있으며, 필요에 따라 가장 적합한 방법을 사용할 수 있습니다.