검사 또는 끄기
마스크와 겹치는 비트만 남깁니다. 특정 플래그가 켜졌는지 확인할 때 기본 선택입니다.
flags & OPTION
flags & ~OPTION
Bitwise Selector
비트 연산은 “어떤 비트를 읽고, 켜고, 끄고, 뒤집고, 이동할지”를 먼저 정하면 연산자가 자연스럽게 선택됩니다.
마스크와 겹치는 비트만 남깁니다. 특정 플래그가 켜졌는지 확인할 때 기본 선택입니다.
flags & OPTION
flags & ~OPTION
원래 값은 유지하고 원하는 자리만 1로 만듭니다. 설정 플래그를 추가할 때 씁니다.
flags | OPTION
flags |= OPTION
같은 자리의 비트를 뒤집습니다. 같은 값을 두 번 XOR하면 원래 값으로 돌아옵니다.
flags ^ OPTION
value ^ key
모든 비트를 반전합니다. 보통 마스크와 함께 특정 비트를 끄는 패턴에 포함됩니다.
~mask
flags & ~OPTION
비트를 왼쪽이나 오른쪽으로 이동합니다. 2의 거듭제곱 배율과 비트 위치 지정에 씁니다.
1 << n
value >> 1
const int A = 1 << 0;
settings |= A;
(settings & A) != 0
&와 |는 비트를 다루고, &&와 ||는 bool 조건을 다룹니다.
비트 결과를 조건으로 쓸 때는 (value & mask) != 0처럼 비교를 명시하면 읽기 쉽습니다.