c语言中求解1的个数-创新互联
在c语言中有三种求解一个数1的个数的方法
创新互联长期为上千余家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为衡阳县企业提供专业的网站制作、网站建设,衡阳县网站改版等技术服务。拥有十余年丰富建站经验和众多成功案例,为您定制开发。将整数每次右移一位的方式
int Numble(int n)
{
int count = 0;
while (n)
{
if (n & 1 == 1)
count++;
n = n >> 1;
}
return count;
}
但这种方法存在的不足是,当这个整数是负数的时候,将无限循环
使整数与1进行与运算,1每次左移一位
int Numble(int n)
{
int count = 0;
int flag = 1;
while (flag&n)
{
count++;
flag = flag << 1;
}
return count;
}
整数减1在与这个整数相与
int Numble(int n)
{
int count = 0;
while (n)
{
count++;
n = n&(n - 1);
}
return count;
}
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
网页标题:c语言中求解1的个数-创新互联
转载注明:http://scyanting.com/article/ceohgh.html