15.二进制中1的个数

2019-07-08  本文已影响0人  HamletSunS

思路:
这道题要注意一个细节,右移的话并不好判断最高位是什么(逻辑右移还是算术右移?)
因此最保险的做法是对1进行左移,然后与数字进行与运算,运算结果不为0,说明当前为是1.

class Solution {
public:
     int  NumberOf1(int n) {
         int one=1;
         int ret=0;
         while(one){
             if(n&one)
                 ret++;
             one=one<<1;
         }
         return ret;
     }
};
上一篇 下一篇

猜你喜欢

热点阅读