【编程之美】求二进制数中1的个数

2018-03-15 14:29:06 浏览数 (1)

求二进制数中1的个数

对于一个字节(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也是一种艺术,它能展现出自己的美。

0 人点赞