求unsigned int i的二进制表示中1的个数

2130阅读 0评论2014-04-03 qinchaowhut
分类:C/C++


点击(此处)折叠或打开

  1. //转
  2. int fun1(unsigned int i)
  3. {
  4.     if(i<2)
  5.         return i;
  6.     else
  7.         return fun(i/2)+i%2;
  8. }

  9. int fun2(unsigned int i)
  10. {
  11.     int n1=0;
  12.     while(i)
  13.     {
  14.         i=i&(i-1);
  15.         n1++;
  16.     }
  17.     return n1;
  18. }

上一篇:大端法与小端法互换
下一篇:欧几里德算法