判断数字是否为2的幂
bool isPow2(int n) {
// 判断一个整数是否是2的幂
// 如果是2的幂,它的二进制表示中只有一个位为1,其余位都为0
// 例如,4的二进制表示是 100,8的二进制表示是 1000
// 因此,一个整数 n 是2的幂,如果 n & (n - 1) 等于0
return (n > 0) && ((n & (n - 1)) == 0);
}
bool isPow2(int n) {
// 判断一个整数是否是2的幂
// 如果是2的幂,它的二进制表示中只有一个位为1,其余位都为0
// 例如,4的二进制表示是 100,8的二进制表示是 1000
// 因此,一个整数 n 是2的幂,如果 n & (n - 1) 等于0
return (n > 0) && ((n & (n - 1)) == 0);
}