快速判断一个数是否是2的幂

来源:互联网 发布:小米网络短信设置 编辑:程序博客网 时间:2024/05/18 02:16

     根据2的幂的数的二进制特点,使用位运算快速判断。

     2的幂的数的二进制表示特点是只有一个1后面全是0,将其减去1之后则原数的1变为0,0变为1,如果在跟原数相与,则结果为0。其他任何不是2的幂的数都不满足该条件。

     所以

bool IsPower2(unsigned int num){    return num>0 ? (num&(num-1) ? false : true) : false;}