Đếm bit 1 (set bits) trong biểu diễn nhị phân của số nguyên. Duyệt từng bit, đếm số bit 1. Ví dụ 17 (10001) có 2 bit 1.
Input: 6 Output: 2
Giải thích
6 nhị phân = 110 có 2 bit 1. Cách lặp: dịch phải từng bit, cộng bit thấp nhất (n & 1). Tối đa 32 vòng lặp cho int 32-bit.
Ví dụ
#include <stdio.h>
int main(void) {
unsigned int n = 34;
int c;
for (c = 0; n; n >>= 1) {
c += n & 1;
}
printf("%d\n", c);
}