비트연산자는 3개다 &, |, ^
비트연산자는 2진법을 사용한다.
비트연산은 오직 정수만 비교한다.
5라는 숫자를 이진법으로 표현하면 0101 10은 10101이다.
이때 각 자릿수를 비교한다.
0101 --> 5
1010 --> 10
&을 사용하고 각 자릿수를 비교했는데 둘다 1이면 1을 반환. 하나라도 0이면 0을 반환
|을 사용하고 각 자릿수를 비교했는데 둘다 1이면 1, 하나라도 1이면 1, 둘다 0이면 0을 반환
^을 사용하고 각 자릿수를 비교했는데 둘이 다르면 1, 둘이 같으면 0을 반환.
^는 XOR이라고 불린다.
이렇게 각 자릿수를 비교하여 새오운 조합의 이진수를 만든다. 만들어진 이진수를 정수 타입의 변수에 대입하면 이진법을 10진법으로 바꾸고 10진법으로 출력을 할 수 있다.
#include <stdio.h>
void main()
{
// 비트연산자
int num1 = 11; // 1011
int num2 = 15; // 1111
int number = num1 & num2; // 1011
printf("%d\n", number); // 11
number = num1 | num2; // 1111
printf("%d\n", number); // 15
number = num1 ^ num2; // 0100
printf("%d\n", number); // 4
getchar();
}
11을 2진수로 표현하면 1011
15를 2진수로 표현하면 1111
& --> 1011
| --> 1111
^ --> 0100
1011를 10진수로 다시 표현하면 11
1111을 10진수로 다시 표현하면 15
0100을 10진수로 다시 표현하면 4
가 출력되는 것을 볼 수 있다.