巧用位运算求解二进制中1的个数
2016-06-03 13:14
267 查看
位运算是将数字化为二进制后,对每一位的0或1进行的运算。一般的运算有与&、或|、异或^和移位等。如何利用位运算来求解二进制中1的个数呢?首先大多数人想到的是先判断最右边的一位是不是1,接着将其右移一位,知道数为0停止。将一个数与上1则可以解决这个问题。
代码如下:
[code=cpp;toolbar:false">int NumofOne1(int num)
{
int count=0;
while(num)
{
if(num&1)
{
count++;
}
num=num>>1;
}
return count;
}
代码如下:
[code=cpp;toolbar:false">int NumofOne1(int num)
{
int count=0;
while(num)
{
if(num&1)
{
count++;
}
num=num>>1;
}
return count;
}
相关文章推荐
- 面试题:旋转数组的最小数字
- struct和typedef struct详细解析
- 【算法总结系列-6】深度优先搜索-Depth First Search,DFS
- 二维数组的查找
- 引用和指针的那些事儿
- C++入门小程序练习
- 字符串转化为整数的算法改进及优化
- 浅谈字符串处理函数(三)
- 浅谈字符串处理函数(二)
- 浅谈字符串处理函数的实现(一)
- 第六次课总结及思考
- 0603学术诚信与职业道德
- Linux双网卡NAT共享上网
- Windows安装php Oracle扩展
- 设置取值范围的模板
- c语言通用平台des加密算法
- Spring MVC中一般类使用service
- MySQL性能优化的最佳21条经验
- cocos2dx游戏--欢欢英雄传说--添加游戏背景
- 开启alwayon后日志分析处理