题目: 输入一个十进制数, 输出其二进制表示中1的个数
注: 计算机存储数字的补码 正数源码与补码一样 负数不一样
-1 的原码 10000001(假设8位) 补码(取反加1,符号位不取反)1111 1111
代码:
int Func(int num)
{
int i = 0;
while (num != 0)
{
num = (num & (num - 1));
i++;
}
return i;
}