位运算

Posted chanceyu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了位运算相关的知识,希望对你有一定的参考价值。

二进制中1的个数

题目链接

每位遍历O(n)

class Solution {
public:
     int  NumberOf1(int n) {
         unsigned int flag=1,sum=0;
         for(int i=0;i<32;++i){
             sum+=flag&n?1:0;
             flag<<=1;
         }
         return sum;
     }
};

只遍历1的个数O(m)

class Solution {
public:
     int  NumberOf1(int n) {
         unsigned int sum=0;
         while(n!=0){
             n=n&(n-1);
             sum++;
         }
         return sum;
     }
};

以上是关于位运算的主要内容,如果未能解决你的问题,请参考以下文章

编程思想:巧用位运算重构代码

基础位运算基本原理和应用

位运算相关

优雅代码05-从hashMap源码介绍位运算符

c语言位运算问题?

为啥 JSHint 反对位运算符?我应该如何表达这个代码?