原题链接

    题目描述:

    1. 给定一个整数,编写一个函数来判断它是否是 2 的幂次方。
    2. 示例 1:
    3. 输入: 1
    4. 输出: true
    5. 解释: 20 = 1
    6. 示例 2:
    7. 输入: 16
    8. 输出: true
    9. 解释: 24 = 16
    10. 示例 3:
    11. 输入: 218
    12. 输出: false

    解:
    1000 & 0111 == 0

    1. public boolean isPowerOfTwo(int n) {
    2. return n > 0 && (n & (n - 1)) == 0;
    3. }

    延伸:

    4的幂

    1. public boolean isPowerOfFour(int num) {
    2. if (num < 0 || (num & (num - 1)) != 0) {
    3. return false;
    4. }
    5. return num % 3 == 1;
    6. }