求二进制数中1的个数
来源:互联网 发布:淘宝方舟生存进化steam 编辑:程序博客网 时间:2024/06/10 08:20
1、对于一个int型的变量,求其二进制表示中“1”的个数,要求算法的执行效率尽可能的高。
算法一:
---- 对整数除以2,余1的个数就是二进制表示中“1”的个数。
#include <iostream>using namespace std;int main(){int number;cout<<"请输入一个整数:\n";while(cin>>number){int count = 0,a = number;while(a){if(a%2){count++;}a/=2;}cout<<number<<"的二进制表示中1的个数是:"<<count<<endl;}system("pause");return 0;}
输出:
算法二:
---- 将整数和0x1相与,若为1,则最右位为1,随之将数右移1.
#include <iostream>using namespace std;int main(){int number;while(cin>>number){int count = 0,a = number;while(a){count += a & 0x1;a >>= 1;}cout<<number<<"的二进制表示中1的个数是:"<<count<<endl;}system("pause");return 0;}输出:
算法三:number &= (number -1)
#include <iostream>using namespace std;int main(){int number;while(cin>>number){int count = 0,a = number;while(a){a &= (a-1);count++;}cout<<number<<"的二进制表示中1的个数是:"<<count<<endl;}system("pause");return 0;}输出:
0 0
- 求二进制数中1的个数
- 求二进制数中1的个数
- 求二进制数中1的个数
- 求二进制数中1的个数
- 求二进制数中1的个数
- 求二进制数中1的个数
- 求二进制数中1的个数
- 求二进制数中1的个数
- 求二进制数中 1 的个数
- 求二进制数中1的个数
- 求二进制数中1的个数
- 求二进制数中1的个数
- 求二进制数中1的个数
- 求二进制数中1的个数
- 求二进制数中1的个数
- “求二进制数中1的个数”
- 求二进制数中1的个数
- 求二进制数中1的个数
- Linux命令合集
- 12306在线买火车票为什么需要安装根证书
- leetCode练习(87)
- Java反射与代理
- 判断 checkbox 是否选中以及 设置checkbox选中
- 求二进制数中1的个数
- ASP.NET 中点击按钮时邮件自动发送功能实例
- JAVA是值传递还是引用传递
- leetcode 112. Path Sum
- C#中值类型和引用类型及类型的转换
- SlidingMenu关闭手势滑动
- 一些有用的技术博文
- grep断言
- libpcap详解