二进制中1的个数

来源:互联网 发布:淘宝五金店铺描述 编辑:程序博客网 时间:2024/06/14 00:51
题目描述:

输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。

输入:

输入可能包含多个测试样例。
对于每个输入文件,第一行输入一个整数T,代表测试样例的数量。对于每个测试样例输入为一个整数。
。n保证是int范围内的一个整数。

输出:

对应每个测试案例,
输出一个整数,代表输入的那个数中1的个数。

样例输入:

-1


样例输出:

32


#include <stdio.h>int main(){    int x,i,sum;    int num;    while(scanf("%d",&num) != EOF)    {        while(num--)        {            scanf("%d",&x);            sum = 0;            for(i=31; i>=0; i--)            {                if(x>>i&1 == 1)                    sum++;                //printf("%d",x>>i&1);            }            printf("%d\n",sum);        }    }    return 0;}


0 0
原创粉丝点击