本文共 750 字,大约阅读时间需要 2 分钟。
程序原型: int count_one_bits(unsigned int value) { 返回 1的位数
}
方法一:原始余2再除2
#define _CRT_SECURE_NO_WARNINGS#includeint count_one_bits(unsigned int value){ int count = 0; while (value) { if (value % 2 == 1) { count++; } value = value / 2; } return count;}
方法2:右移一位与1操作
int count_one_bits(int value){ int count = 0; int i = 32; while (i) { if (value & 1 == 1) { count++; } value = value >> 1; i--; } return count;
方法三:关注数据再内存存储方式:
int count_one_bits(int value){ int count = 0; while (value) { count++; value = value&(value - 1); } return count;}
主函数:
int main(){ int num = 0; int ret = 0; scanf("%d", &num); ret = count_one_bits(num); printf("count=%d\n", ret); system("pause"); return 0;}
转载地址:http://blxrb.baihongyu.com/