본문 바로가기
C++ 200제/코딩 IT 정보

C++ 11 BitSet (비트셋) 예제 (정수, 문자열, 논리 연산)

by vicddory 2018. 12. 10.
반응형

C++ 11 BitSet (비트셋) 예제 (정수, 문자열, 논리 연산)



쓸만한 예제를 하나 찾았는데 일본 사이트네요.


가만보면 일본어 사이트에 괜찮은 예제가 많아요.


C++ 11 BitSet (비트셋) 예제 (정수, 문자열, 논리 연산)[C++ 11 BitSet (비트셋) 예제 (정수, 문자열, 논리 연산)]


예제 소스.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>
#include <bitset>
 
int main() // C++ 11 예제
{
  // 정수로 8비트 집합 구성
  std::bitset<8> bs1(131uL); // 10000011
 
  // 문자열로 8비트 집합 구성
  std::bitset<8> bs2("10000011");
 
  // 인덱스 1의 비트가 1인지 판정
  if (bs1[1]) {
    std::cout << "1st bit is 1" << std::endl;
  }
 
  // 2번째 비트를 1로
  bs1.set(2);
  std::cout << "2nd bit to 1 : " << bs1 << std::endl;
 
  // 2번째 비트를 다시 0으로
  bs1.reset(2);
 
  // 하나의 비트가 1인지 판정
  if (bs1.any()) {
    std::cout << "some bits are 1" << std::endl;
  }
 
  // 논리 연산
  std::bitset<8> and_bits = bs1 & std::bitset<8>("10000001");
  std::bitset<8> or_bits  = bs1 | std::bitset<8>("00010100");
  std::bitset<8> xor_bits = bs1 ^ std::bitset<8>("00100011");
 
  std::cout << "and : " << and_bits << std::endl;
  std::cout << "or  : " << or_bits << std::endl;
  std::cout << "xor : " << xor_bits << std::endl;
}
cs


소스 결과


1
2
3
4
5
6
1st bit is 1
2nd bit to 1 : 10000111
some bits are 1
and : 10000001
or  : 10010111
xor : 10100000
cs


C++ 11 BitSet (비트셋) 예제 (정수, 문자열, 논리 연산)

반응형