求int型正整数在内存中存储时1的个数

#include<stdio.h>

int main(int argc, char const *argv[])
{
    int a=0,sum=0;
    scanf("%d", &a);
    while (a!=0)
    {
        sum += a%2;
        a /= 2;
    }
    printf("%d\n", sum);

    return 0;
}

进制转换问题

1.一个数取模2的时候输出二进制