西南交通大学吧 关注:549,545贴子:19,395,874
  • 23回复贴,共1

求助大神!!C++

只看楼主收藏回复

#include<iostream>
using namespace std;
int func(int x)
{
int count =0;
while(x)
{
count ++;
x=x&(x-1);
}
return count;
}
int main()
{
cout<<func(9999)<<endl;
return 0;
}
有没有大神能解答呀~~
好困惑


1楼2016-10-08 13:56回复
    我一直都是一个人P


    来自iPad3楼2016-10-08 13:58
    回复
      2025-12-10 20:56:04
      广告
      不感兴趣
      开通SVIP免广告
      x=x&(x-1)这个是啥


      IP属地:广东来自iPhone客户端6楼2016-10-08 15:15
      收起回复
        同问


        IP属地:四川来自Android客户端7楼2016-10-08 16:04
        回复
          这程序好像是数二进制数里面有多少个1的,我猜结果是8


          来自Android客户端8楼2016-10-08 20:24
          收起回复
            很巧妙,《Hacker's Delight》很多这种技巧啊.


            10楼2016-10-08 21:09
            收起回复
              8


              11楼2016-10-09 15:45
              回复
                这种方法可以用来求一个十进制数 转换成二进制后有多少个1
                int comput(int tmpn){ int tmpc=0; while(tmpn>0) { tmpc++; tmpn=tmpn&(tmpn-1) } return tmpc;}
                可以把你主函数中X弄小点,自己手算便于理解。
                http://www.myexception.cn/cpp/312844.html


                IP属地:浙江12楼2016-10-09 22:53
                收起回复
                  2025-12-10 20:50:04
                  广告
                  不感兴趣
                  开通SVIP免广告
                  因为搬家,在星汉路(西南交大北门附近)的蓝色港湾游泳就不太方便了,现低价出售,购买成600元18次,现在还有15次。300元售出!有需要请联系18782950915。包邮。


                  来自iPhone客户端13楼2016-10-10 19:02
                  回复