C++ 프로그래밍 언어는 bitset이라는 C++ 표준 템플릿 라이브러리의 컨테이너를 정의합니다. 이 bitset 컨테이너는 비트 수준에서 요소, 즉 변수의 각 비트, 즉 주어진 값의 이진 변환에 대해 작업하는 데 사용됩니다.
1. Bitset은 문자열과 같습니다. − Bitset은 비트의 컨테이너입니다( 0과 1만 유효 ). 비트 집합의 시작 인덱스 값과 고려되는 요소 수로 지정된 비트 집합을 사용하여 비트 집합을 만들 수 있습니다. 비트셋.
예 - 비트 문자열 01001110의 인덱스 값 2에서 시작하는 4개의 요소가 필요합니다. 이 비트세트는 0011 요소를 사용합니다. bitset의 끝에 추가됩니다. 따라서 이 방법으로 정의된 8비트 bitset의 값은 00000011입니다. .
예시
#include <bitset> #include <string> #include <iostream> int main() { std::string bit_string = "10010110"; std::bitset<8> b1(bit_string, 1 , 4); std::cout << b1 << '\n' ; return 0; }
출력
00000010
2. 문자열에서 Bitset 구성 − 생성하는 동안 사용되는 두 가지 유형의 값만 있는 문자열이 있는 경우. 이 문자열을 각각의 0/1 표현으로 값을 고려하는 비트 집합으로 변환할 수 있습니다.
이 개념을 더 잘 이해하기 위해 예를 들어 보겠습니다.
우리는 'xyxxyyx'라는 문자열을 가지고 있습니다. 여기서 x =0 및 y=1을 고려하여 배열과 동일한 길이의 비트세트를 생성할 수 있습니다. 비트세트는 0100110으로 생성됩니다. .
이 작업을 수행하기 위해 라이브러리에 정의된 생성자가 있습니다 -
bitset(str, offSet, size, zeroVal , oneVal) ;
이것은 비트 집합을 만들기 위해 정의된 생성자입니다. 생성자를 자세히 살펴보고 생성자의 각 매개변수가 전달하는 내용을 알아보겠습니다.
문자열 - bitset 생성을 위해 고려할 문자열입니다.
오프셋 - 문자열의 문자열 인덱스.
크기 − 생성될 bitset의 크기입니다.
zeroVal − 0으로 간주될 문자열의 값
oneVal − 1로 간주될 문자열의 값]
예시
#include <bitset> #include <string> #include <iostream> using namespace std; int main() { string bitstr = "xyxxyyyx"; bitset<8> bits(bitstr, 0, bitstr.size(), 'x', 'y'); cout <<"The bitset is : "<< bits << '\n'; }
출력
The bitset is: 01001110
3. bitset을 문자열로 변환 − bitset에는 bitset을 문자열로 변환하는 기능이 있습니다. to_string() 함수 비트 집합의 값을 문자열에 저장하는 데 사용됩니다. 문자열의 길이는 bitset의 길이와 같습니다.
비트 집합의 요소를 문자열에 저장하는 순서는 비트 집합 순서와 동일합니다. 즉, 비트 집합의 첫 번째 요소는 문자열의 첫 번째 요소입니다.
01010100의 문자열 변환 "01010100"입니다.
메소드의 매개변수 목록에 지정하여 0과 1을 임의의 문자로 바꿀 수 있습니다. bitset을 구성하는 동안 배운 것과 반대입니다.
예시
#include <iostream> #include <bitset> using namespace std; int main() { bitset<8> b(19); cout<<"The value of the bitset is : "<<b<<endl; cout<<"The string conversion of the bitset is : "<<b.to_string()<<endl; cout<<"The string conversion by replacing 0 with T and 1 with P is : "; cout<< b.to_string('T', 'P')<<endl; }
출력
The value of bitset is : 00010011 The string conversion of bitset is : 00010011 string conversion by replacing 0 with T and 1 with P is : TTTPTTPP
bitset에서 수행되는 다른 많은 작업이 있습니다. 또한 사용할 수 있는 일부 비트 연산자도 있습니다. 여기에서 설명하는 bitset의 기본 기능과 속성입니다.