본문 바로가기

Programming/ C Language

[C]비트연산자란 무엇인가?

728x90
반응형

◇ 비트 연산자란 데이터를 2진수로 인식하여 연산을 수행하는 연산자입니다.

비트연산자 설명
& (and)

 연산대상과 피연산자의 비트가 모두 1 일때 1이 됩니다.

ex) 1111 & 1010 == 1010

|   (or)

 연산대상과 피연산자의 비트 중 하나라도 1이면 1이 됩니다.

ex) 1001 | 0100 == 1101

^ (exclusive or || xor)

 연산대상과 피연산자의 비트가 다를 경우 1이 됩니다.

ex) 1010 ^ 1000 == 0010

~ (complement)

 비트를 반전시킵니다.

ex) ~1000 == 0111 

<<

 왼쪽으로 비트를 이동시킵니다

ex) 1000 >> 2  == 0010

>>

 오른쪽으로 비트를 이동시킵니다

ex) 0010 << 1 == 0100

◇ 활용 예시

main() {
	int num1 = 11; //11(0000 1011)
	int num2 = 11;
	int num3 = 11;
	int num4 = 11;
	int num5 = 11;

	num1 &= 3;     // 3(0000 0011) AND 연산
	/*
	   0000 1011 (11)
	   0000 0011 (3)
	   ---------
	   0000 0011 (3)
	*/
	num2 |= 2;     // 2(0000 0010) OR 연산
	/*
	   0000 1011 (11)
	   0000 0010 (2)
	   ---------
	   0000 1011 (11)
	*/
	num3 ^= 8;     // 8(0000 1000) XOR 연산
	/*
	   0000 1011 (11)
	   0000 1000 (8)
	   ---------
	   0000 0011 (3)
	*/
	num4 <<= 3;    // 비트를 왼쪽으로 3번 이동
	/*
	   0000 1011 (11)
	   ---------
	   0101 1000 (88)
	*/
	
	num5 >>= 2; //비트를 오른쪽으로 2번 이동
	/*
	   0000 1011 (11)
	   ---------
	   0000 0010 (2)
	*/

	printf("%u\n", num1);
	printf("%u\n", num2);
	printf("%u\n", num3);
	printf("%u\n", num4);
	printf("%u\n", num5);


}

▷결과값으로  순서대로 3  11  3  88  2가 출력됩니다.

 

 

 

반응형