[c++] 비트 연산과 비트 데이터 타입
이번 글에서는 C++에서 비트 연산과 관련된 비트 데이터 타입에 대해 알아보겠습니다.
비트 연산
C++에서는 다음과 같은 비트 연산자를 지원합니다.
&
: AND 연산|
: OR 연산^
: XOR 연산~
: NOT 연산<<
: 왼쪽 시프트 연산>>
: 오른쪽 시프트 연산
이러한 비트 연산자를 이용하여 비트 단위의 연산을 수행할 수 있습니다.
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++에서는 비트 연산을 위한 다양한 연산자와 비트 데이터 타입을 제공하기 때문에, 비트 연산을 통해 효율적인 프로그래밍을 할 수 있습니다.