티스토리 뷰

목차

    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 (비트셋) 예제 (정수, 문자열, 논리 연산)