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

题目描述
输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。
输入描述:
输入一个整数(int类型)
输出描述:
这个数转换成2进制后,输出1的个数ide


解法1(C):code

#include<stdio.h>

int main()
{
    int n;
    int count = 0;
    scanf("%d", &n);
    while(n)
    {
        if(n % 2)
            count++;
        n /= 2;
    }
    printf("%d\n", count);
    return 0;
}

解法2(C):内存

#include<stdio.h>

int main()
{
    int n;
    int count = 0;
    scanf("%d", &n);
    while(n)
    {
        count++;
        n &= n-1;
    }
    printf("%d\n", count);
    return 0;
}
相关文章
相关标签/搜索