统计数n转换为二进制后包含1的个数

思路:

判断最低位是否为1,然后右移一位,这样次低位就位于最低位的位置,然后继续判断最低位

1 int numberOf1(unsigned int n){
2     int cnt = 0;
3     while(n){
4         if(n & 1)
5             cnt++;
6         n >>= 1;
7     }
8     return cnt;
9 }
1 int numberOf1(unsigned int n){
2     int cnt = 0;
3     while(n > 0){
4         n &= n - 1;
5         cnt++;
6     }
7     return cnt;
8 }

 

posted @ 2016-05-03 10:23  0x47  阅读(243)  评论(0)    收藏  举报