C++에서 제공하는 STL bitset은 0 또는 1 (True or False) 의 형태로 저장되고 비트들을 다루고 비트연산을 수행할 수 있는 다양한 멤버 함수를 지원한다.
bitset<비트 사이즈> 변수명;
으로 정의할 수 있고 변수에 초기값으로 int, floag, string 등을 넘겨 2진수로 변환하여 저장할 수 있다.
#include <iostream>
#include <bitset>
using namespace std;
int main(){
int A = 5, B = 15;
cout << A << "의 2진수 : " << bitset<4>(A) << "\n";
cout << B << "의 2진수 : " << bitset<4>(B) << "\n";
cout << A << "와 " << B << "의 AND 연산 : " << (bitset<4>(A & B)) << "\n";
cout << A << "와 " << B << "의 OR 연산 : " << (bitset<4>(A | B)) << "\n";
cout << A << "와 " << B << "의 XOR 연산 : " << (bitset<4>(A ^ B)) << "\n";
cout << A << "의 NOT 연산 : " << (bitset<4>(~A))<< "\n";
return 0;
}
// bitset 중에서 1인 비트의 개수를 반환
int cnt = bitset<20>(n).count();