对于一个字节(8bit)的无符号整型变量,求其二进制表示中“1”的个数,要求算法的执行效率尽可能高。
01
class
解法一:
看到这个问题,一个最直接的想法就是%2来统计1的个数了
int count(type n)
{
int count = 0;
while (n != 0)
{
if (n%2 == 1)
{
count ;
}
n = n/2;
}
return count;
}
02
class
解法二:
使用位操作。
int count(type n)
{
int count = 0;
while (v)
{
num = v & 0x01;
v>>=1;
}
return num;
}
03
class
解法三:
int count(type n)
{
int count = 0;
while (v)
{
v &= (v-1);
num ;
}
return num;
}
code也是一种艺术,它能展现出自己的美。