第一次尝试
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int HowManyOne(int num) {
int ret = 0;
for (int i = 31; i >= 0; i--) {
if (((num >> i) & 1) == 1) {
ret++;
}
}
return ret;
}
int main() {
printf("请输入一个数:");
int num = 0;
scanf("%d", &num);
int ret = HowManyOne(num);
printf("%d\n", ret);
return 0;
}
此代码较为简单,就是使用移位操作符和与操作符结合,就可计算出有多少个 1。