29. C++ 비트 연산자

C++ 비트 연산자

1. 개요

1.1 문서 개요

이 문서는 C++에서 제공하는 비트 연산자에 대해 설명합니다. 비트 연산자는 피연산자를 비트 단위로 처리하는 연산자로, 하드웨어 제어, 성능 최적화, 플래그 처리 등 저수준 프로그래밍에서 중요하게 사용됩니다.

2. 내용

2.1 비트 연산자의 종류와 동작 방식

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

연산자 설명 예시
& 비트 AND a & b
` ` 비트 OR
^ 비트 XOR a ^ b
~ 비트 NOT ~a
<< 왼쪽 시프트 a << n
>> 오른쪽 시프트 a >> n

2.1.1 비트 AND (&)

두 비트 모두 1인 경우에만 결과가 1이 됩니다.

2.1.1.1 예시
int a = 5;   // 0101
int b = 3;   // 0011
int result = a & b; // 0001 -> 1

2.1.2 비트 OR (|)

두 비트 중 하나라도 1이면 결과가 1이 됩니다.

2.1.3 비트 XOR (^)

두 비트가 서로 다를 때만 결과가 1이 됩니다.

2.1.4 비트 NOT (~)

비트를 반전시킵니다. 양수를 음수로, 음수를 양수로 바꿉니다 (2의 보수 표현 기준).

2.1.5 시프트 연산자 (<<, >>)

왼쪽 또는 오른쪽으로 비트를 이동시킵니다. 왼쪽 시프트는 곱셈 효과, 오른쪽 시프트는 나눗셈 효과를 가질 수 있습니다.

2.2 비트 연산의 활용

2.2.1 플래그 처리

여러 상태를 비트 단위로 저장하고 검사할 수 있습니다.

const int FLAG_READ = 0x01;
const int FLAG_WRITE = 0x02;

int mode = FLAG_READ | FLAG_WRITE;
if (mode & FLAG_WRITE) {
    // 쓰기 가능
}

2.2.2 마스크(mask) 적용

특정 비트를 추출하거나 제거하는 데 사용됩니다.

3. 마무리

C++의 비트 연산자는 저수준에서 효율적인 데이터 처리를 위해 사용됩니다. 각 연산자의 동작 방식과 활용 예시를 통해 실무에서의 응용 가능성을 이해할 수 있으며, 플래그 처리 및 마스킹 연산 등에 필수적인 기능으로 작용합니다.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

error: Content is protected !!
위로 스크롤