Octoping의 블로그
Published 2022. 6. 18. 15:51
비트마스킹 개발 일반/알고리즘

비트마스킹은 이진법을 이용하여 적은 메모리로 데이터를 저장하는 기법이다

int arr[20]에 0 또는 1의 데이터를 저장하느니, 20자리의 이진수 숫자 하나에 비트 하나당 0, 1의 값으로 데이터를 저장하는 것이 훨씬 이득일 것이다.

 

int bitmask = 0; // 초기화

// [ n번째 값 1로 만들기 ]
bitmask |= (1 << n);

// [ n번째 값 0으로 만들기 ]
bitmask &= ~(1 << n);

// [ n번째 값 체크하기 ]
int check = (bitmask & (1 << n));  // 1이라면 1 << n을 반환, 0이라면 0 반환

// [ 1부터 n까지 모든 값 1로 채우기 ]
bitmask = (1 << (n + 1)) - 1;

// [ 모든 값 0으로 채우기 ]
bitmask = 0;

// [ n번째 값 0이면 1로, 1이면 0으로 바꾸기 ]
if(bitmask & (1 << n) == 0) {
    bitmask |= (1 << n);
}
else {
    bitmask &= ~(1 << n);
}

'개발 일반 > 알고리즘' 카테고리의 다른 글

숫자 배열에서 두 번째로 큰 값 찾기  (0) 2022.06.18
profile

Octoping의 블로그

@Octoping

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!