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

Đếm tổng bit trong số nguyên trong C++


Cho số nguyên num. Đếm độ dài biểu diễn nhị phân (số bit từ MSB 1 đến LSB).

Ví dụ: 50 (110010) → 6 bit; 10 (1010) → 4 bit.

Giải thuật: Dịch bit phải cho đến khi số bằng 0, đếm số lần dịch.

Ví dụ

#include <iostream>
using namespace std;

unsigned int bits(unsigned int number) {
    unsigned int count = 0;
    // Hiển thị 8-bit
    for (unsigned i = 1 << 7; i > 0; i >>= 1)
        cout << ((number & i) ? '1' : '0');
    // Đếm tổng bit
    while (number) {
        count++;
        number >>= 1;
    }
    cout << "\nCount: " << count;
    return count;
}

int main() {
    bits(50);
    return 0;
}

Đầu ra

8-bit digits of 50 is: 00110010
Count of total bits in a number are: 6