비트 마스킹이란?

비트 마스킹(Bit Masking)은 이진수(binary)로 표현되는 데이터를 조작하거나 제어하기 위해 사용하는 기법입니다. 특정 비트들을 선택적으로 켜거나 끄거나 확인하는 데 활용됩니다. 비트 연산자를 활용하여 효율적으로 동작하기 때문에, 메모리와 성능 측면에서 유리하다.

비트 마스킹 주요 연산자

비트 마스킹 활용

  1. 특정 비트 활성화

    1. 설명 : 특정 위치의 비트를 1로 변경
    2. 방법 : | (or) 연산자를 사용
    3. 예시
    int num = 0b1010;  // 10
    int mask = 0b0100; // 4
    num = num | mask;  // 결과: 0b1110 (14)
    
  2. 특정 비트 비활성화

    1. 설명 : 특정 위치의 비트를 0으로 변경
    2. 방법 : & (and)와 ~(not) 연산자를 사용
    3. 예시
    int num = 0b1011;  // 11
    int mask = 0b1101; // ~(0b0010)
    num = num & mask;  // 결과: 0b1001 (9)
    
  3. 특정 비트 활성화인지 확인

    1. 설명 : 특정 위치의 비트가 1인지 확인
    2. 방법 : &(and) 연산자를 사용
    3. 예시
    int num = 0b1010;  // 10
    int mask = 0b0010; // 2
    if (num & mask) {
        // 비트가 켜져 있음
    }
    
    int num = 0b1010;  // 10
    int mask = 0b0010; // 2
    if (num & mask) {
        // 비트가 켜져 있음
    }
    
  4. 특정 비트 반전

    1. 설명 : 특정 위치의 비트를 1 → 0 또는 0 → 1로 변환
    2. 방법 : ^ 연산자를 사용
    3. 예시
    int num = 0b1010;  // 10
    int mask = 0b0100; // 4
    num = num ^ mask;  // 결과: 0b1110 (14)
    

알고리즘 관련 문제(백준)

11732 (집합)

18917(수열과 쿼리 38)

24500(blobblush)