비트마스크 트릭들

Byoungyoon Park·2021년 8월 21일
0
  1. k번째 비트가 1인지 0인지 확인
bit & (1 << k)
  1. k번째 비트를 1로 변경
bit |= (1 << k);
  1. k번째 비트를 0으로 변경
bit &= ~(1 << k);
  1. k번째 비트 토글
bit ^= (1 << k);
  1. 가장 작은 자릿수의 1 찾기
   use T = (A & (-A)).

   For example:     A =  40 (base 10) = 000...000101000 (32 bits, base 2)
                   -A = -40 (base 10) = 111...111011000 (two’s complement)
                                       ----------------- AND
                    T =   8 (base 10) = 000...000001000 (3rd bit from right is on)

모든 자리 1

A = (1 << n) - 1;

모든 조합에 대해 루프

for(int i = 0; i < (1 << n); i++)
profile
반갑습니다.

0개의 댓글