#include<iostream> using namespace std; //求二进制中1的个数:对于一个字节(8bit)的变量,要求算法的执行效率尽可能的高 //1,对于二进制,对2求余可得到这一位是0还是1 int count1(int v) { int num=0; while(v) { if(v%2==1) ++num; v=v/2; } return num; } //2.除2可用右移操作,提高效率,判断一位是否为1可用与来判别 int count2(int v) { int num=0; while(v) { num+=(v&1); v>>=1; } return num; } //这个数是2的整数次幂来判断 int count3(int v) { int num=0; while(v) { v&=(v-1); ++num; } return num; } //4.分支语句进行判断:效率低 int count4(int v) { int num=0; switch(v) { case 0: num=0; break; case 1: case 2: case 4: case 8: case 16: case 32: case 64: case 128: num=1; break; case 3: case 6: case 12: //还有别的可能 num=2; break; } return num; } //5.查表法 int countTable[256]={ 0,1,1,2,1,2, }; int count5(int v) { return countTable[v]; } int main() { cout<<count1(3)<<endl; cout<<count2(15)<<endl; cout<<count3(4)<<endl; cout<<count4(128)<<endl; cout<<count5(0)<<endl; return 0; }我们提供的服务有:成都网站设计、网站制作、微信公众号开发、网站优化、网站认证、新华ssl等。为上千多家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的新华网站制作公司
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
标题名称:求二进制中1的个数的五种方法-创新互联
网页链接:https://www.cdcxhl.com/article44/dicihe.html
成都网站建设公司_创新互联,为您提供网站设计公司、网站排名、云服务器、软件开发、微信公众号、品牌网站设计
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联