#include <iostream>
int NumberOf1(int n)
{
unsigned int flag = 1;
int count = 0;
while (flag)
{
if (n & flag)
count++;
flag = flag << 1;
}
return count;
}
int NumberOf1(int n)
{
int count = 0;
while (n)
{
++count;
n = (n - 1) & n;//n=1000, n-1=0100, n=0 n中只有一个1
}
return count;
}
第一种解法必须循环整数的二进制的位数次,而第二种解法循环次数=n中有多少个1次
求一个数的二进制中有多少个1的两种解法
最新推荐文章于 2022-03-23 01:25:44 发布