#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
//NumberOf1就是计算参数n的二进制补码中有几个1
//123
//123%10 = 3
//123/10 = 12
//12%10 = 2
//12/10 = 1
//1%10 = 1
//1/10 = 0
/***************/
//15 - 000011111
//15%2 = 1
//15/2 = 7 - 00000111
//7%2 = 1
//7/2 = 3 - 00000011
//3%2 = 1 - 00000001
//3/2 = 1 - 00000001
//1%2 = 1 - 00000001
//1/2 = 0 - 00000000
int NumberOf1(int n)
{
int count = 0;
int i = 0;
for (i = 0; i < 32; i++)
{
if ((n >> 1) & 1 == 1)
{
count++;
}
}
return count;
}
int main()
{
int n = -1;
int ret = NumberOf1(n);
printf("ret=%d\n", ret);
return 0;
}