비트 마스킹(Bit Masking)은 이진수(binary)로 표현되는 데이터를 조작하거나 제어하기 위해 사용하는 기법입니다. 특정 비트들을 선택적으로 켜거나 끄거나 확인하는 데 활용됩니다. 비트 연산자를 활용하여 효율적으로 동작하기 때문에, 메모리와 성능 측면에서 유리하다.
&
(AND): 두 비트가 모두 1일 때만 1|
(OR): 하나 이상의 비트가 1일 때 1^
(XOR): 두 비트가 서로 다를 때 1~
(NOT): 비트를 반전<<
(Left Shift): 비트를 왼쪽으로 이동 (빈 공간은 0으로 채움)>>
(Right Shift): 비트를 오른쪽으로 이동특정 비트 활성화
int num = 0b1010; // 10
int mask = 0b0100; // 4
num = num | mask; // 결과: 0b1110 (14)
특정 비트 비활성화
int num = 0b1011; // 11
int mask = 0b1101; // ~(0b0010)
num = num & mask; // 결과: 0b1001 (9)
특정 비트 활성화인지 확인
int num = 0b1010; // 10
int mask = 0b0010; // 2
if (num & mask) {
// 비트가 켜져 있음
}
int num = 0b1010; // 10
int mask = 0b0010; // 2
if (num & mask) {
// 비트가 켜져 있음
}
특정 비트 반전
int num = 0b1010; // 10
int mask = 0b0100; // 4
num = num ^ mask; // 결과: 0b1110 (14)