求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;
}
相關文章
相關標籤/搜索