判断有多少个1
1.右移每次判断一个二进制位
int several_one(int a) { int count = 0; for (int i = 0; i < 32; i++)//只能判断int型 { if (((a >> i) & 1) == 1) count++; } return count; }
2.形参a的值发生了改变
int several_one(int a) { int count = 0; while (a != 0)//可以判断任意 { count++; a = a & (a - 1); } return count; }