如何判断一个数的二进制中1的个数(num = (num - 1))
//可以用下面的方法
int count_one(int num)
{int count = 0; //记录1的个数while (num){++count;num &= (num - 1); }return count;
}
使 num=10;
num=10= 1010B
num-1=9= 1001B
执行:num&=(num-1); //num=num&(num-1) //目的是去掉二进制末尾的1
&运算之后 num=1000B=8
因为num!=0 所以接着循环
再执行:num&=(num-1);
num=8 = 1000B
num-1=7 = 111B
&运算之后 num=0000=0
此时的count中就是二进制中1的个数。
如何判断一个数的二进制中1的个数(num = (num - 1))相关推荐
- 判断32位整数二进制中1的个数
在面试中被问到这一题:判断32位无符号整数二进制中1的个数,虽然不难,但要求层层优化.现在整理一下: 1.基本思路: #include <iostream> using namespace ...
- 计算一个数的二进制中1的个数
/**计算一个数的二进制中1的个数*/ #include int numberOf1InBinary(const unsigned int a); int numberOf1InBinary_Mask ...
- 每列大于0的个数_二进制中1的个数(剑指offer第十四天)
二进制中1的个数 题目:请实现一个函数,输入一个整数,输出该数二进制表示中 1 的个数.例如,把 9 表示成二进制是 1001,有 2 位是 1.因此,如果输入 9,则该函数输出 2. 示例 1: 输 ...
- 剑指Offer:二进制中1的个数
题目:输入一个整数,输出该数二进制表示中1的个数. // 二进制中1的个数 #include <stdio.h>int wrong_count_1_bits(int n) // 错误解法: ...
- 求二进制中1的个数(编程之美2.1)
行文脉络 解法一--除法 解法二--移位 解法三--高效移位 解法四--查表 扩展问题--异或后转化为该问题 对于一个字节(8bit)的变量,求其二进制"1"的个数.例如6(二进制 ...
- 【剑指offer-Java版】10二进制中1的个数
二进制中1的个数: 思路一:循环右移给定的数,但是存在负数出现死循环的问题 思路二:声明一个变量flag并初始化为1,然后循环右移flag,循环次数是和给定数的精度也就是位数有关 思路三:用了二进制一 ...
- 编程之美2.1 求二进制中1的个数
最近一段的时间,一直在看编程之美之类的算法书籍,刚开始看编程之美,感觉到难度太大,有时候也不愿意去翻动这本书,不过,经过一段时间的修炼,我也彻底的喜欢上这本书了, 书中的算法涉及到很多方面,树,链表, ...
- [剑指Offer]12.二进制中1的个数
题目 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 思路 把一个整数减去1,再和原整数做与运算,会把整数最右边一个1变成0.那么一个整数的二进制表示中有多少个1,就可以进行多次这样 ...
- 二进制中1的个数(2)
在判断二进制中1的个数的时候,我们可以通过二进制位的移动进行判断,我们只需要判断最后一位是否为1即可: 在判断的过程中我么可以进行与的操作达到母的,我们可以与1进行与的操作,今儿判断最后一位是否为1: ...
最新文章
- 多传感器融合:自动驾驶(上)
- 10.VMware View 4.6安装与部署-view clint和view for ipad连接测试
- go get 失败 no go files in_Go 每日一库之 dig
- 五大IT巨头 成立专利联盟
- 阿里云专家赵伟教你在CDN边缘节点上构建多层纵深防护体系
- PE知识复习之PE的各种头属性解析
- MapXtreme IResultSetFeatureCollection
- 如何用更短时间写出高质量的博客文章经验分享
- android之数组排序
- iOS对象的归档和解档-Runtime实现
- AX2012 常用表关系(客户地址,联系信息)
- 黑客攻防实战入门读书笔记
- 8255矩阵键盘C语言,8255驱动矩阵键盘和数码管程序
- winrar压缩软件弹出广告解决办法
- Plantcare_启动子预测结果_快速筛选指定基因启动子上的顺式作用元件个数
- 合天网安的渗透测试考核过程
- 《移动互联:用户体验设计指南》读书笔记4——移动UX模式
- canvas教程18-刮刮乐
- Arcgis For Android实现比例尺
- 《强化学习》 基本概念和交叉熵方法