[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을 참고하세요.