제목을 뭐라고 붙여야 할지 잘모르겠어서 그냥 이진수의 비트값 확인이라고 해봤습니다.

설명을 하기도 아는게 없어서 뭐라고 해야 할지 잘 모르겠네요...^^;


네트워크 통신으로 받은 값의 몇번째 비트가 서있는지를 확인 해야 할때, 쉽게 사용하기 위해 샘플을 한번 만들어 봤습니다.

일단 맞는것 같은데....

보시고 문제가 있을것 같은면....연락을...^^;


[샘플소스]

public class ConvertIntegerToBitDigitValue {
	public static void main(String[] args) {
 
		int hex = 15;
		System.out.printf("binary                 : [%s]\n", Integer.toBinaryString(hex));
		for (int i = 0; i < 4; i++) {
			System.out.printf("integerToBitDigitValue : %d번째 %s \n", i, integerToBitDigitValue(hex, i));
		}
 
		System.out.println("-----------------------------------------");
 
		hex = 10;
		System.out.printf("binary                 : [%s]\n", Integer.toBinaryString(hex));
		for (int i = 0; i < 4; i++) {
			System.out.printf("integerToBitDigitValue : %d번째 %s \n", i, integerToBitDigitValue(hex, i));
		}
 
		System.out.println("-----------------------------------------");
 
		hex = 3;
		System.out.printf("binary                 : [%s]\n", Integer.toBinaryString(hex));
		for (int i = 0; i < 4; i++) {
			System.out.printf("integerToBitDigitValue : %d번째 %s \n", i, integerToBitDigitValue(hex, i));
		}
 
		System.out.println("-----------------------------------------");
 
		hex = 12;
		System.out.printf("binary                 : [%s]\n", Integer.toBinaryString(hex));
		for (int i = 0; i < 4; i++) {
			System.out.printf("integerToBitDigitValue : %d번째 %s \n", i, integerToBitDigitValue(hex, i));
		}
	}
 
	/**
	 * 정수값의 비트자리수의 값이 1인지 0인지 확인<br>
	 * 
	 * @param value
	 *            정수값<br>
	 * @param bitDigit
	 *            비트자리수<br>
	 * @return true : 비트자리수의 값이 1<br>
	 *         false : 비트자리수의 값이 0<br>
	 */
	public static boolean integerToBitDigitValue(int value, int bitDigit) {
		int bitVal = ((Double) Math.pow(2, bitDigit)).intValue();
		return (value & bitVal) == bitVal;
	}
 
}



[실행 결과]

bitdigitvalue.PNG


이런걸 사용할일이 별로 없겠죠...^^;

저도 가끔 사용하는거라....없으면 불편하고 해서 한번 만들어봤습니다.


더 좋은게 있으면 알려주세요.


감사합니다.