C语言位操作判断整数是否为2的幂

unsigned int v; // 判断v是否为2的幂
bool f;         // f为判断的结果

f = (v & (v - 1)) == 0; // 结果为0表示不是2 的幂

// 改变表示方法,可以使用下面的方法:
f = v && !(v & (v - 1));
原文地址:https://www.cnblogs.com/cpoint/p/3367377.html