写一个函数返回参数二进制中 1 的个数

来源:互联网 发布:aws s3 java 编辑:程序博客网 时间:2024/05/16 04:37
写一个函数返回参数二进制中 1 的个数(1)#include <stdio.h>int main(){int num = 0;int i = 0;int count = 0;        scanf("%d",&num);for(i=0; i<32; i++){            if((num&1) == 1){count++;}num = num>>1;/*if(((num>>i)&1) == 1)//任何一个数字,给它按位与(&)"1",就能得知其最低位。{count++;}*/}printf("%d\n", count);return 0;}(2)#include <stdio.h>int main(){int num = 0;int count = 0;scanf("%d",&num);while(num){count++;num = num&(num-1);//一个数和这个数减一,按位与(&),可以去掉最右面的"1"。}printf("count = %d\n", count);return 0;}(3)#include <stdio.h>int count_one_bits(unsigned int value){int count = 0;while(value){if(value%2 == 1){count++;}value = value/2;}return count;}int main(){unsigned int num = 0;int ret = 0;        printf("请输入一个数:\n");scanf("%d",&num);ret = count_one_bits(num);printf("二进制中1的个数为%d\n",ret);return 0;} 
1 0
原创粉丝点击