MIT HAKMEM算法

这是一个求二进制里有多少个1的算法,复杂度很平均,用的少量数学知识,这里贴个出处:https://blog.csdn.net/msquare/article/details/4536388

这篇文章条理清晰,讲得非常不错,下面只贴最后结论代码供自己使用,详情请看上面链接,认真看一定能懂。

int bitcount(unsigned int n)  
{  
    unsigned int tmp;  
  
    tmp = n  
        - ((n >> 1) & 033333333333)  
        - ((n >> 2) & 011111111111);  
  
    tmp = (tmp + (tmp >> 3)) & 030707070707  
  
    return (tmp%63);  
}  

猜你喜欢

转载自blog.csdn.net/qq_34262582/article/details/80367343