&(and)연산자 두 비트를 비교하여 둘다 참이 아니면 무조건 0.
마찬가지로 &연산자를 사용해서도 가능한 응용법.
#include <stdio.h>
void main()
{
unsigned int bit = 0x12345678;
int chk_bit[4] = { {0x000000ff}, {0x0000ff00}, {0x00ff0000}, {0xff000000}};
unsigned char out_bit[4] = {0};
printf( "%x\n", bit );
out_bit[0] = bit & chk_bit[0];
printf( "%x \n", out_bit[0] );
out_bit[1] = (bit & chk_bit[1]) >> 8;
printf( "%x \n", out_bit[1] );
out_bit[2] = (bit & chk_bit[2]) >> 16;
printf( "%x \n", out_bit[2] );
out_bit[3] = (bit /*& chk_bit[3]*/) >> 24;
printf( "%x \n", out_bit[3] );
}

16진수 기준으로 123456이라는 숫자를
각각 12, 34, 56, 78로 나누어 쪼개 넣었다.
어느 부분에서 어떻게 활용해야 할지는 솔직히 잘 모르겠지만,
알면 알 수록 신기한 비트연산의 세계
'프로그래밍 > C언어' 카테고리의 다른 글
문자열과 배열 (0) | 2010.03.08 |
---|---|
재귀 호출 (0) | 2010.03.08 |
bit연산자 - & | ^ << >> (2) (0) | 2010.03.08 |
bit연산자 - & | ^ << >> (1) (0) | 2010.03.08 |
랜덤함수-rnd()-srand() 사용법 (0) | 2010.03.05 |