Given an integer, write a function to determine if it is a power of two.
Example 1:
Input: 16
Output: true
Example 2:
Input: 5 Output: false
判断一个数是否为2的次幂,偶然发现3年前做这道题就是很简单的循环对2取余整除。顺手用位运算写了一行代码又提交了一次。效率提升了200多倍。
public boolean isPowerOfTwo(int n) { return n > 0 && (n & (n - 1)) == 0; }
原理参考这篇博客的技巧部分。