【C语言】输入一个整数,输出该数二进制表示中1的个数(三种方法)
输入一个整数,输出该数二进制表示中1的个数。如输入32,输出1.
代码实现:
方法1:与运算
#define_CRT_SECURE_NO_WARNINGS1#include<iostream>usingnamespacestd;intFindOneNumber(unsignedintnum){intnumberofOne=0;while(num){num=num&(num-1);numberofOne++;}returnnumberofOne;}voidTest(){intnum=32;cout<<FindOneNumber(num)<<endl;}intmain(){Test();system("pause");return0;}
方法2:模除法
#define_CRT_SECURE_NO_WARNINGS1#include<iostream>usingnamespacestd;intFindOneNumber(unsignedintnum){intnumberofOne=0;while(num){if(num%2==1)numberofOne++;num/=2;}returnnumberofOne;}voidTest(){intnum=32;cout<<FindOneNumber(num)<<endl;}intmain(){Test();system("pause");return0;}
方法3:移位
#define_CRT_SECURE_NO_WARNINGS1#include<iostream>usingnamespacestd;intFindOneNumber(unsignedintnum){intnumberofOne=0;while(num){if(num&1)numberofOne++;num=num>>1;}returnnumberofOne;}voidTest(){intnum=32;cout<<FindOneNumber(num)<<endl;}intmain(){Test();system("pause");return0;}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。