[c++] 문자열 비트 연산
이번에는 C++에서 문자열을 비트 연산하는 방법에 대해 알아보겠습니다.
문자열을 정수로 변환
먼저, 문자열을 정수로 변환하는 방법을 알아보겠습니다. C++에서는 std::bitset
을 사용하여 이 작업을 수행할 수 있습니다. 아래는 문자열 “1010”을 정수로 변환하는 예제 코드입니다.
#include <iostream>
#include <bitset>
int main() {
std::string binaryString = "1010";
std::bitset<4> bits(binaryString);
unsigned long value = bits.to_ulong();
std::cout << value << std::endl; // 출력: 10
return 0;
}
비트 연산 수행
다음으로, 정수로 변환한 문자열을 이용하여 비트 연산을 수행할 수 있습니다. 예를 들어, &
비트 연산자를 사용하여 두 개의 비트열을 비교할 수 있습니다.
#include <iostream>
#include <bitset>
int main() {
std::string binaryString1 = "1010";
std::string binaryString2 = "0011";
std::bitset<4> bits1(binaryString1);
std::bitset<4> bits2(binaryString2);
std::bitset<4> result = bits1 & bits2;
std::cout << result << std::endl; // 출력: 0010
return 0;
}
비트 연산에는 &
외에도 |
, ^
, <<
, >>
등 다양한 연산자가 있으며, 각각의 연산은 비트 단위로 동작합니다.
결론
이렇게 C++에서는 문자열을 비트 연산하기 위해 std::bitset
을 활용할 수 있습니다. 이를 통해 문자열을 비트 단위로 조작하고 다양한 연산을 수행할 수 있습니다.
더 자세한 내용은 cppreference.com을 참고하세요.