출처 : <알고리즘 트레이닝>, 안티 라크소넨
x | (1 << k) : x의 k번째 비트를 1로 바꾸기
x & ~(1 << k) : x의 k번째 비트를 0으로 바꾸기
x ^ (1 << k) : x의 k번째 비트를 뒤집기
x & (x - 1) : 가장 오른쪽의 비트 1을 0으로 바꾸기
x & -x : 가장 오른쪽의 비트 1만 남기고 모두 0으로 바꾸기
x | (x - 1) : 마지막 비트 1 다음에 나오는 모든 비트 뒤집기
'Computer Science' 카테고리의 다른 글
[C++] Disjoint Set 기초 구현 (0) | 2022.09.09 |
---|---|
[C++] Segment Tree 라이브러리 만들기 (0) | 2022.08.16 |
[C++] 볼록 껍질 클래스 구현 (0) | 2022.08.07 |
[C++] 다항식 클래스와 라그랑주 보간법(Lagrange Interpolation) 구현 (0) | 2022.08.07 |
[C++] SCC Maker class (0) | 2022.08.06 |
댓글