1. /**
    2. * @param {number} n
    3. * @return {boolean}
    4. */
    5. // 若 n = 2^x且 x 为自然数(即 nn 为 22 的幂),则一定满足以下条件:
    6. // 恒有 n & (n - 1) == 0,这是因为:
    7. // nn 二进制最高位为 11,其余所有位为 00;
    8. // n - 1n−1 二进制最高位为 00,其余所有位为 11;
    9. // 一定满足 n > 0。
    10. // 因此,通过 n > 0 且 n & (n - 1) == 0 即可判定是否满足 n = 2^x
    11. var isPowerOfTwo = function(n) {
    12. return n > 0 && (n & -n) === n
    13. };