비트 연산자

비트 연산자 해석

플래그, 마스크, 시프트를 이해하면 작은 정수 하나로 여러 상태를 표현하거나 특정 비트만 검사할 수 있습니다.

AND

필요한 비트만 남김

&는 둘 다 1인 자리만 1이 되어 마스크 검사에 자주 쓰입니다.

flags & mask
OR

특정 비트를 켬

|는 하나라도 1이면 1이 되어 옵션 플래그를 켤 때 쓰입니다.

flags | mask
XOR

다른 비트만 표시

^는 두 비트가 다를 때 1이 되어 토글이나 차이 검출에 쓰입니다.

value ^ mask
SHIFT

비트 자리 이동

<<와 >>는 비트 위치를 옮기며 2의 거듭제곱 곱셈과 나눗셈처럼 동작할 수 있습니다.

1 << n
마스크 설계각 플래그는 서로 다른 비트 자리를 써야 조합해도 의미가 섞이지 않습니다.
signed/unsigned 변환부호 있는 정수의 오른쪽 시프트는 구현과 값에 따라 해석이 까다로울 수 있습니다.
우선순위비트 연산과 비교 연산을 섞을 때는 마스크 검사를 괄호로 감쌉니다.