二进制中1的个数

来源:互联网 发布:赵本山支持女儿玩网络 编辑:程序博客网 时间:2024/05/22 15:55

 题目描述:实现一个函数,输入一个整数,输出该数二进制中1的个数。

 过程分析:

代码实现:
#include<iostream>using namespace std;int GetOneNum_1(int n) //第一种方法:标志位移动{int count = 0;unsigned int flag = 1;while(flag){if(n & flag){count ++;}flag = flag << 1;}return count;}int GetOneNum_2(int n) //第二种方法:数字移动{int count = 0;while(n){count ++;n = (n-1)& n;}return count;}int main(){cout<<GetOneNum_1(1)<<endl;cout<<GetOneNum_1(7)<<endl;cout<<GetOneNum_1(-1)<<endl;cout<<GetOneNum_1(8)<<endl;cout<<GetOneNum_2(1)<<endl;cout<<GetOneNum_2(7)<<endl;cout<<GetOneNum_2(-1)<<endl;cout<<GetOneNum_2(8)<<endl;return 0;}


原创粉丝点击