비트마스크

고현준·2020년 3월 12일
0

C

목록 보기
9/9
post-custom-banner

1<<k는 k번째 위치에만 비트 1이 있고 나머지에는 비트 0이 있다. 이를 통해 정수의 특정한 비트 하나에 접근이 가능하다

  • (x&(1<<k)) != 0 이면 정수 x의 k번째 비트가 1이다.
  • x|(1<<k) 는 정수 x의 k번째 비트를 1로 바꾼다.
  • x&~(1<<k) 는 k번째 비트를 0으로 바꾼다.
  • x^(1<<k)는 k번째 비트를 뒤집는다.
  • x&(x-1)은 가장 오른쪽 비트 1을 0으로 바꾼다.
  • x&-x는 정수의 모든 비트를 0으로 바꾸되, 가장 오른쪽의 비트 1만 남긴다.
  • x|(x-1)은 마지막 비트 1 다음에 나오는 모든 비트를 뒤집는다.
  • 양의 정수 x에 대해 x&(x-1) = 0 이면 x는 2의 거듭제곱이다.
profile
박치기

0개의 댓글