读书笔记一

1. 获取一个整数的末尾零的个数,如0100, 个数为2

int LowBit(int x)
{
    
return x & (-x);    // return x & (x ^ (x - 1) );
}

 

 备注:这是从树形数组里面的一个方法,来源于百科。一个数的相反数的二进制:取反加一。

2.  获取nNum的上界二次方,比如 4< 5 < 8 获得8

int inline GetMipNum(int nNum)
{
    
if(nNum<0)
        
return -1;
    
    nNum
--;
    nNum 
|= nNum >> 1;
    nNum 
|= nNum >> 2;
    nNum 
|= nNum >> 4;
    nNum 
|= nNum >> 8;
    nNum 
|= nNum >> 16;
 
    
return nNum+1;
posted @ 2010-09-19 23:27  木叶道  阅读(187)  评论(0编辑  收藏  举报