Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Chương trình C/C++ đếm bit 1 trong số nguyên


Đế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);
}