二、方法一求一个整数存储在内存中的二进制中的1的个数。
举例:
8 二进制 为 1000 1 的个数为 1
7 二进制 为 0111 1 的个数为 3
缺点: 不能计算负数二进制中的1的个数
#define _CRT_SECURE_NO_WARNINGS 1 #include三、方法二int main() { int n = 0; int count = 0; printf("请输入一个整数: "); scanf("%d", &n); while (n != 0) { if (n % 2 == 1) { count++; } n /= 2; } printf("这个整数中 1 的个数为: %dn", count); return 0; }
#include四、方法三int main() { int n = 0; int count = 0; printf("请输入一个整数:"); scanf("%d", &n); for (int i = 0; i < 32; i++) { if (1 == ((n >> i) & 1)) { count++; } } printf("你输入的整数有 %d 个 0 !!n", count); return 0; }
#define _CRT_SECURE_NO_WARNINGS 1 #includeint main() { int n = 0; int count = 0; printf("请输入一个整数: "); scanf("%d", &n); while (n) { n = n & (n - 1); printf("%dn", n); count++; } printf("这个整数的二进制中 1 的个数有 %d 个n", count); return 0; }



