题解 | #求int型正整数在内存中存储时1的个数#
求int型正整数在内存中存储时1的个数
http://www.nowcoder.com/practice/440f16e490a0404786865e99c6ad91c9
C++——简单易懂位运算
例如,5的二进制形式为:1001
用1来 & 1001,判断完一位二进制位,目标二进制数就往右移,依次判断完。
代码如下:
#include<iostream> using namespace std; int main(){ int a; cin>>a; int count=0; while(a != 0){ if(a & 1 ==1) count++; a = a>>1;//a右移1位(溢出最右边的,判断左边移过来的是否是1) } cout<<count; return 0; }