求一个数字二进制中1的个数
来源:互联网 发布:重庆网络问政区县 编辑:程序博客网 时间:2024/06/07 13:52
1.一个很简单的思路,把每一位与1相与如果结果是1,就代表这一位是1,相反是0
int BinaryNumOne1(int num){int count = 0;while (num){if (num & 1){count++;}num = num >> 1;}return count;}
每次把num右移一位,但是如果num的最高位为1其他位为0,那它要移32位(假设int占4个字节),这样效率就比较的低了
2.改进方法:
代码如下:
int BinaryNumOne2(int num){int count = 0;while (num){count++;num = num & (num - 1);}return count;}
1 0
- 求一个数字二进制中1的个数
- 求数字的二进制中1的个数
- 数字之魅------求二进制数中1的个数
- 数字之美之-------求二进制中1的个数
- 一个数字二进制中一的个数
- 判断一个数字的二进制形式中1的个数
- 计算一个数字的二进制中1的个数
- 求一个整数的二进制中1的个数
- 求一个整数的二进制中1的个数
- 求一个整数的二进制中1的个数
- 求一个数的二进制数中1的个数
- 求一个整数的二进制中1的个数
- 求一个整数的二进制中1的个数
- 求一个数的二进制表示中1的个数
- 求一个整数的二进制中1的个数
- 求一个整数的二进制中1的个数
- 求一个整数的二进制中1的个数
- 求一个整数的二进制中1的个数
- java基础之异常
- SSH学习之Spring的初识
- 业务逻辑层
- memcached 命令操作详解
- 浙江省选day1第一天
- 求一个数字二进制中1的个数
- 基本排序算法
- 人脸检测--非极大值抑制-Non-Maximum Suppression
- List学习-1
- OGRE 2.1 使用VS2015编译的过程以及问题的解决
- linux中用adduser和useradd命令创建用户有什么区别?
- 求n的阶乘的精确值
- sencha touch 给没有touch事件的控件添加touch事件
- android UI篇 进度条 progressbar