1. 개요
- 정의: 비트마스크는 정수의 이진수 표현을 사용하여, 각 비트가 특정 상태나 조건을 나타내도록 하는 기법이다.
- 활용 예: 설정 옵션, 접근 권한, 기능 플래그 등 다양한 상태를 효율적으로 저장하고 관리한다.
2. 특징
- 비트마스크로 집합을 표현하는 방식은 다음과 같다
- k번째 원소 포함여부: A & (1 << k) != 0
- k번째 원소 추가: A | (1 << k)
- k번째 원소 삭제: A & ~(1 << k)
- 전체집합 : (1 << N) - 1
- 공집합 : 0
3. 코드
public class BitmaskExample {
public static void main(String[] args) {
final int OPTION_A = 1 << 0; // 0001
final int OPTION_B = 1 << 1; // 0010
final int OPTION_C = 1 << 2; // 0100
final int OPTION_D = 1 << 3; // 1000
int settings = 0;
// 옵션 A와 C를 켭니다.
settings |= (OPTION_A | OPTION_C);
// 옵션 B가 켜져 있는지 확인합니다.
boolean isOptionBEnabled = (settings & OPTION_B) != 0;
// 옵션 C를 끕니다.
settings &= ~OPTION_C;
System.out.println("Settings: " + Integer.toBinaryString(settings));
System.out.println("Is Option B enabled? " + isOptionBEnabled);
}
}