본문 바로가기

비트 연산자3

bit연산자 - & | ^ << >> (3) &(and)연산자 두 비트를 비교하여 둘다 참이 아니면 무조건 0. 마찬가지로 &연산자를 사용해서도 가능한 응용법. #include 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.. 2010. 3. 8.
bit연산자 - & | ^ << >> (2) > 연산자에 대해서 살펴 보자. 4비트의 0001(1)를 >할 경우 0001(1)이 되는 것은 기본적인 것이라 소스코드는 패스. 시프트연산자를 사용하면 좀더 재밋는 일을 할 수 있는데 #include void main() { bool flag[4]; char bit=0; flag[0] = true; flag[1] = true; flag[2] = true; flag[3] = true; if( flag[0] ) printf( "첫번째 상태\n" ); if( flag[1] ) printf( "두번째 상태\n" ); if( flag[2] ) printf( "세번째 상태\n" ); if( flag[3] ) printf( "네번째 상태\n" ); printf( "\n\n" ); bit = 1; bit = bit |.. 2010. 3. 8.
bit연산자 - & | ^ << >> (1) 비트 연산자에 대해서, 비트 연산자는 &(and), I(or), ^(xor), (shift)연산자가 존재한다. 먼저 가장 ^(xor)에 대해서 살펴 보자. #include void main() { int val3 = 127; int key = 112; int val = 35; int val2 = 35; int x = 5; int y = 10; // xor를 사용한 값 변환 printf( "%d\n", val ); val ^= val; printf( "%d\n", val ); val ^= val2; printf( "%d\n", val ); // 간단한 암호화 printf( "%d\n", val3 ); val3 ^= key; printf( "%d\n", val3 ); val3 ^= key; printf( ".. 2010. 3. 8.