비트셋 비트 수준에서 데이터를 처리하기 위한 C++ 표준 템플릿 라이브러리의 컨테이너입니다.
1. bitset은 비트(0 또는 1의 두 가지 값만 가능한 요소)를 저장합니다. 그러나 비트세트 생성자에 위치를 제공하여 문자열의 일부를 얻을 수 있습니다(위치는 문자열 위치를 기준으로 왼쪽에서 오른쪽으로 지정됩니다).
안드로이드에서 구글 계정 로그아웃
예:
C++// C++ program to demonstrate that we can get part of a // bit string in bitset. #include #include #include int main() { std::string bit_string = '110010'; std::bitset<8> b1(bit_string); // [0 0 1 1 0 0 1 0] // string from position 2 till end std::bitset<8> b2(bit_string 2); // [0 0 0 0 0 0 1 0] // string from position 2 till next 3 positions std::bitset<8> b3(bit_string 2 3); // [0 0 0 0 0 0 0 1] std::cout << b1 << 'n' << b2 << 'n' << b3 << 'n'; return 0; }
산출:
00110010 00000010 00000001
2. std::basic_string _str의 문자를 사용하여 비트세트를 구성할 수 있습니다. 선택적 시작 위치 _pos 및 길이 _n은 물론 설정(_one) 및 설정 해제(_zero) 비트에 대한 대체 값을 나타내는 문자도 제공될 수 있습니다.
통사론:
std::bitset b1(str pos n zero one); str : string used to initialize the bitset pos : a starting offset into str n : number of characters to use from str zero : alternate character for unset bits in str one : alternate characters for set bits in str
- _pos > str.size()인 경우 이 생성자는 std::out_of_range를 발생시킵니다.
- _str에서 검사된 문자가 0이나 1이 아닌 경우 std::invalid_argument가 발생합니다.
// C++ program to demonstrate that we can construct bitset using // alternate characters for set and unset bits. #include #include #include int main() { // string constructor using custom zero/one digits std::string alpha_bit_string = 'aBaaBBaB'; std::bitset<8> b1(alpha_bit_string 0 alpha_bit_string.size() 'a' 'B'); // [01001101] std::cout << b1 << 'n'; }
산출:
01001101
3. N 비트를 0과 1의 C 스타일 문자열에 제공된 문자에 해당하는 값으로 초기화하는 bitset 클래스의 개체를 생성합니다. 문자열을 문자열 유형으로 캐스팅하지 않고 생성자를 호출합니다. 또한 _Str의 어떤 문자가 각각 0비트와 1비트를 의미하도록 해석되는지를 나타내는 두 개의 선택적 매개변수 _Zero 및 _One도 있습니다.
C++
#include #include int main() { // char* constructor using custom digits std::bitset<8> b1('XXXXYYYY' 8 'X' 'Y'); // [0 0 0 0 1 1 1 1] std::cout << b1 << 'n'; }
산출:
00001111
비트세트 작업
1. std::bitset::to_string()
비트 세트의 내용을 문자열로 변환합니다. false 값을 가진 비트를 나타내려면 0을 사용하고 true 값을 가진 비트를 나타내려면 1을 사용합니다. 결과 문자열에는 첫 번째 문자가 마지막(N-1번째) 비트에 해당하고 마지막 문자가 첫 번째 비트에 해당하는 N 문자가 포함됩니다. 또한 매개변수를 통해 true 및 false 값을 인쇄하는 데 사용되는 문자를 전달할 수 있습니다.
예:
C++// C++ program to demonstrate that we can convert contents // of bitset to a string. #include #include int main() { std::bitset<8> b(42); std::cout << b.to_string() << 'n' << b.to_string('*') << 'n' << b.to_string('O' 'X') << 'n'; }
산출:
00101010 **1*1*1* OOXOXOXO
2. stz::비트.
비트 세트의 내용을 부호 없는 긴 정수로 변환합니다. 비트 세트의 첫 번째 비트는 숫자의 최하위 숫자에 해당하고 마지막 비트는 최상위 숫자에 해당합니다. 값을 unsigned long으로 표현할 수 없으면 함수는 std::overflow_error를 발생시킵니다.
예:
C++// C++ program to demonstrate that we can get value of bitset // as unsigned long integer. #include #include int main() { std::bitset<5> b(5); std::cout << b.to_ulong() << 'n'; }
산출:
5