Number of 1 Bits

来源:互联网 发布:简单java单线程程序 编辑:程序博客网 时间:2024/06/15 16:20

解法来源剑指offer,题10

1.可能引起死循环的解法

int NumberOf1(int n){    int count = 0;    while(n)    {       if(n&1)       count++;       n = n >> 1;    }    return count;}


若为负数如0x80000000移位为0xC0000000,最终变为0xFFFFFFFF陷入死循环。

2.better

int NumberOf1(int n){    int count = 0;    unsigned int flag = 1;    while(flag)    {       if(n & flag)         count++;       flag = flag << 1;    }    return count;<pre name="code" class="cpp"> }

3.best

int NumberOf1(int n){   int count = 0;   while(n)   {     count++;     n = (n - 1) & n;   }   return count;}


0 0
原创粉丝点击