可能的重复:
Query about working out whether number is a power of 2
How to check if a number is a power of 2
我需要这个原型的功能体:
bool isPOT(int x);
所以它会返回eg ispot(3)=false,但ispot(8)=true
最漂亮/简洁的算法是什么?什么是最有效的?
附言:我很惊讶我不能在上面找到这个问题,所以我完全期待有人能发现一些重复的。
PPS:有人可以创建pot,npot,power of two标签吗?
最佳答案
bool IsPOT(int x)
{
return (x > 0) && ((x & (x - 1)) == 0);
}