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의 거듭제곱이다.