비트마스크 트릭들

  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++)

좋은 웹페이지 즐겨찾기