题目描述
输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。
输入描述:
输入一个整数(int类型)。 如:5
输出描述:
这个数转换成2进制后,输出1的个数。如:2
方法1:
位运算,对每位进行判断,判断是否为1.
#include<iostream> using namespace std; int main(){ int num; cin>>num; int count=0; int a=1; while(a) { if(num&a) count++; a<<=1; } cout<<count; return 0; }
方法2
找规律,每次num&(num-1)后少一个1.
while(num){ count++; num=num&(num-1);