[PS] PS 비트마스킹 알아두기 (cpp)
PS를 하면서 비트마스킹 기록용
i번째 비트가 1인지 확인하기
1
2
3
//1.
k & ( 1 << (i-1) ); // k > INTMAX 이면 overflow
어떤수 K의 홀짝 판별
1
2
if(k & 1) // 홀수
else // 짝수
어떤 수 x가 1인 비트를 몇 개 갖고 있는가?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//1.
while(x) {
x = x & (x-1);
cnt++;
}
//2.
for (int i = 1; i < x; i <<= 1) {
if(i&x) cnt++;
}
// 3. c++20 - popcount 함수
// 4. builtin_popcount 함수
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.