본문 바로가기
공부/개발노트

[C/C++] 비트 단위 연산자

반응형

피연산자1i번째 비트

피연산자2i번째 비트

결과 값의 i번째 비트

AND

OR

XOR

0

0

0

0

0

0

1

0

1

1

1

0

0

1

1

1

1

1

1

0

[표 1-1] 비트 단위 AND, OR, XOR 연산 결과

피연산자1i번째 비트

결과 값의 i번째 비트

NOT

1

0

0

1

[표 1-2] 비트 단위 NOT 연산 결과


여기서 XOR은 실무에서 매우 다양하게 사용됩니다.


AND, OR, NOT은 논리연산자의 AND, OR, NOT과 개념이 동일 하다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <bitset>
#include <iostream>
using namespace std;
 
int main(){
    char c = 1;
    short int si = 2;
    int i = 4;
    
    cout << "c = " << bitset<8>(c) << "("
        << (int)c << ") \n";
    cout << "si = " << bitset<16>(si) << "("
        << si << ") \n";
    cout << "i = " << bitset<32>(i) << "("
        << i << ") \n";
        
    return 0;
}
cs

정수 값을 2진수로 출력해보았다.


c는 char을 2진수로 출력해보았다.

si는 short int를 2진수로 출력해보았다.

i는 int를 2진수로 출력해보았다.


비트 연산을 할 때 반드시 아래와 같은 라이브러리가 include되어야한다.

#include <bitset>

이 라이브러리가 include 안되어 있으면 아래와 같은 오류 메세지가 뜬다.






반응형