二进制整数中1的个数
来源:互联网 发布:美国大学排名 知乎 编辑:程序博客网 时间:2024/05/16 15:09
两种解法:
第一种:
为了避免死循环, 可以让num和1按位与,判断最低位是不是1,然后让1左移再与num按位与 判断次低位是不是1,然后按照这种模式一直循环 ,直到1左移32次截止;这种方法不会死循环,可以正确判断出正数和负数中1的个数,但是不论数字大小均要循环操作32次,效率不高。
代码:
//int NumberOf1(int num)//{//int FLAG = 1;//int count = 0;////while(FLAG)//{//if(num & FLAG)//count++;//FLAG <<= 1;//}//return count;//}
第二种:方便高效
int NumberOf1(int num){int count = 0;while(num){num = num & (num - 1);count++;}return count;}int main(){cout << NumberOf1(-10) << endl;return 0;}
阅读全文
0 0
- 整数的二进制中1的个数
- 整数的二进制中1的个数
- 整数的二进制中1的个数
- 整数二进制中1的个数
- 整数二进制中1的个数
- 整数二进制表示中1的个数
- 整数二进制中1的个数
- 整数二进制表示中1的个数
- 整数二进制表示中1的个数
- 整数二进制表示中1的个数
- 整数二进制表示中1的个数
- 整数中二进制1的个数
- 二进制整数中1的个数
- 整数二进制表示中1的个数
- 一个整数二进制中1的个数
- 整数中二进制1的个数
- 二进制整数中1的个数
- 整数二进制形式中1的个数
- HTTP请求GET与POST的区别
- git for windows快速入门教程
- Mplayer交叉编译
- Windows字符串深入详解
- 做Android项目前应该知道的小知识点
- 二进制整数中1的个数
- CSS定位之元素的层级
- 导弹力学分析-1
- 目录/文件的权限
- 通过hadoop二次排序分析hadoop工作过程
- linux shell命令
- 椒盐噪声及中值滤波处理
- Tomcat的使用(详细流程)
- 内部类、内部接口