Java 간단한 bit 변환기

3. 간단한 bit 변환기

간단한 bit 변환 함수를 만들어 보자. 일단은 int형의 값을 인자로 갖고 boolean 배열의 형태로 값을 리턴하는 형식을 취할 것이다. 

이 메소드의 처리과정을 나열해 보면

1. 비트를 표현하는 boolean[]을 리턴 값으로 갖는다.
2. int값과 얻을 비트수를 메소드의 파라미터로 갖는다.
3. 메소드(함수)의 내부에서 int 값을 boolean[]로 변환하는 로직을 구현한다.
4. 비트수 만큼 루프(loop)를 돌려서 비트값을 얻는다.
5. 해당 비트값은 int값을 2로 %연산한 값이 1인지 아닌지로 판별한다.
6. 5번의 처리 후 값을 2로 나누어 준다.
7. int 값은 양의 정수만을 대상으로 한다.

코드는 다음과 같다.



public class Example1 {
    /**
     * 인자로 주어진 int 값을 boolean 배열로 얻는다.
     * @param value 값
     * @param bitNum 비트갯수
     * @return boolean 배열
     */
    public static boolean[] convertToBits(int value, int bitNum) {
        boolean[] arr = new boolean[bitNum];
        long temp = value;
        for(int i=bitNum-1; i>=0; i--) {
            if(temp%2 == 1) {
                arr[i] = true;
            } else {
                arr[i] = false;
            }
            temp = (int)(temp / 2);
        }
        return arr;
    }
    
    /**
     * 메인 함수
     * @param args
     */
public static void main(String[] args) {
boolean[] bits = convertToBits(-10, 8*4);
for(int i=0; i<bits.length; i++)
System.out.print((bits[i])?"1":"0");
}
}


댓글

이 블로그의 인기 게시물

생성자, 멤버변수, 멤버함수, 지역변수

클래스와 인스턴스

Swing/SWT 통합(번역)