首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【编程之美】求二进制数中1的个数

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

作者头像
程序员互动联盟
发布2018-03-15 14:29:06
6640
发布2018-03-15 14:29:06
举报
求二进制数中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也是一种艺术,它能展现出自己的美。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-11-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员互动联盟 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档