雨来了,风知道
、、、、、、、、、◎◎◎◎◎◎◎◎◎ 、、、、、、、、、◎◎◎◎◎◎◎◎◎ 、、、、、、、、、◎◎◎◎◎◎◎◎◎
posts - 1,  comments - 0,  trackbacks - 0

/*版一*/
unsigned int bitcount(unsigned int x)
{
      int b;
      for(b=0;x != 0;x >>= 1)
      {
            if(x&01)
            b++;
      }
      return b;
}


/*版二*/
unsigned int bitcount(unsigned int x)
{
 int b;
 for(b=0;x != 0;)
 {
  x &= (x-1);    /* 这里的做用是每次都会在原的的数的基础上去掉一个1,贼酷 */
  b++;
 }
 return b;
}

/*版三*/
unsigned   int bitcount(register   unsigned   int   x)
{
       x   -=   ((x   > >   1)   &   0x55555555);
       x   =    (((x   > >   2)   &   0x33333333)   +   (x   &   0x33333333));
       x   =    (((x   > >   4)   +   x)   &   0x0f0f0f0f);
       x   +=   (x   > >   8);
       x   +=   (x   > >   16);
      return(x   &   0x0000003f);
}

/*第3个版本的清晰版本*/
unsigned   int bitcount(register   unsigned   int   x)
{
      x = (x & 0x55555555) + ((x >> 1) & 0x55555555); 
      x = (x & 0x33333333) + ((x >> 2) & 0x33333333); 
      x = (x & 0x0F0F0F0F) + ((x >> 4) & 0x0F0F0F0F); 
      x = (x & 0x00FF00FF) + ((x >> 8) & 0x00FF00FF); 
      x = (x & 0x0000FFFF) + ((x >>16) & 0x0000FFFF); 
      return(x   &   0x0000003f);
}
//进一步解释:看图吧,已经山穷水尽啦,如果还不明白请打120
 
  







/*其实这个算法很简单,就是把这个数中的所有的1都加起来就可以了*/



























 

 































posted @ 2008-10-05 10:28 五子 阅读(698) | 评论 (0)编辑 收藏
仅列出标题  

<2024年5月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

常用链接

留言簿(1)

随笔档案

最新随笔

搜索

  •  

积分与排名

  • 积分 - 698
  • 排名 - 868

最新随笔

最新评论