package cn.iocoder.yudao.framework.common.thealgorithms.bitmanipulation;

///**
// * Is number power of 2
// * @author Bama Charan Chhandogi (https://github.com/BamaCharanChhandogi)
// */
//
//public final class IsPowerTwo {
//    private IsPowerTwo() {
//    }
//    public static boolean isPowerTwo(int number) {
//        if (number <= 0) {
//            return false;
//        }
//        int ans = number & (number - 1);
//        return ans == 0;
//    }
//}

/**
 * 判断数字是否是 2 的幂
 * @作者 Bama Charan Chhandogi (https://github.com/BamaCharanChhandogi)
 */

public final class IsPowerTwo {
    private IsPowerTwo() {
    }
    // 判断数字是否是 2 的幂
    public static boolean isPowerTwo(int number) {
        // 如果数字小于等于 0，则不是 2 的幂
        if (number <= 0) {
            return false;
        }
        // 使用位运算来判断，如果 number 和 number-1 的位与运算结果为 0，则说明是 2 的幂
        int ans = number & (number - 1);
        return ans == 0;
    }
}

