剑指Offer系列-面试题10:二进制中1的个数

题目:请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。例如把9表示成二进制数是1001,有2位是1.因此如果输入9,该函数输出2。
#include 

using namespace std;

int NumberOf1(int n)
{
    int num = 0;
    while(n)
    {
        ++ num;
        n = (n - 1) & n;
    }
    return num;
}

int main()
{
    cout << NumberOf1(0) << endl;
    cout << NumberOf1(1) << endl;
    cout << NumberOf1(1024) << endl;
    cout << NumberOf1(1023) << endl;
    cout << NumberOf1(-1023) << endl;
    return 0;
}


你可能感兴趣的:(剑指Offer,剑指Offer)