[c++] 비트 연산과 비트 데이터 타입

이번 글에서는 C++에서 비트 연산과 관련된 비트 데이터 타입에 대해 알아보겠습니다.

비트 연산

C++에서는 다음과 같은 비트 연산자를 지원합니다.

이러한 비트 연산자를 이용하여 비트 단위의 연산을 수행할 수 있습니다.

int a = 5;  // 0000 0101
int b = 3;  // 0000 0011

int result_and = a & b;  // 0000 0001 (AND 연산)
int result_or = a | b;   // 0000 0111 (OR 연산)
int result_xor = a ^ b;  // 0000 0110 (XOR 연산)
int result_shift = a << 1;  // 0000 1010 (왼쪽 시프트)

비트 데이터 타입

C++에서는 bool, char, unsigned char, signed char 등과 같이 1바이트로 이루어진 데이터 타입들이 있습니다. 이러한 데이터 타입은 비트 단위의 연산에 특히 유용합니다.

또한, <bitset> 헤더를 사용하여 고정 크기의 비트 시퀀스를 다룰 수 있는 bitset 클래스도 제공됩니다.

#include <iostream>
#include <bitset>

int main() {
    // 비트 데이터 타입 활용 예제
    char flags = 0b00001011;  // 8개의 비트 중 1, 3, 4, 8번째 비트가 1인 상태
    std::bitset<8> bits(flags);
    std::cout << bits << std::endl;

    return 0;
}

결론

비트 연산은 특정 비트에 대한 조작이 필요한 경우, 메모리를 절약하거나 연산을 더 빠르게 수행할 수 있는 장점을 가지고 있습니다. C++에서는 비트 연산을 위한 다양한 연산자와 비트 데이터 타입을 제공하기 때문에, 비트 연산을 통해 효율적인 프로그래밍을 할 수 있습니다.

Reference