判断一个数是否为2的幂?

http://www.cppblog.com/converse/archive/2006/07/10/9664.html

 

bool Is2Power(int nNum)
{
     return nNum > 0 ? ((nNum & (~nNum + 1)) == nNum ? true : false) : false;
}

或者

#define IS_POWER_OF_2(v) (!((v) & ((v) - 1)) && (v))

你可能感兴趣的:(判断一个数是否为2的幂?)