/*
***求取十進制數字元素1的個數
*/int fun(int x)
{int count = 0;int i, j, k;/***方法2 負數不可計算,需要改進*/while (x != 0){if (x & 1 == 1){count++;}x = x >> 1;}/****方法1*/while (x != 0){x = x&(x - 1);count++;}return count;
}int main()
{int k;int num = 0;scanf("%d", &k);num = fun(k);printf("%d", num);system("pause");return 0;}
運算過程:
? ? ? ? ? ? ? ? ?https://blog.csdn.net/csdn_kou/article/details/79764559