📅  最后修改于: 2023-12-03 15:11:32.741000             🧑  作者: Mango
在计算机科学中,位运算是指直接对整数在内存中的二进制位进行操作。位运算常用来提高代码的执行效率。
问题2:如何判断一个整数是2的幂次方?
答:判断一个整数n是否是2的幂次方可以使用位运算。如果一个整数n是2的幂次方,那么它的二进制表示中只有一个1。例如,2的二进制表示是10,4的二进制表示是100,8的二进制表示是1000。因此,判断一个整数n是否是2的幂次方的方法为:
if((n & (n - 1)) == 0) {
// n是2的幂次方
} else {
// n不是2的幂次方
}
代码解释:
注:此方法同样适用于判断一个整数是否为4的幂次方,只需判断(n & (n - 1)) == 0 && (n & 0x55555555) != 0即可(0x55555555是一个整数,二进制表示为01010101010101010101010101010101,表示每相邻两位为1)。
以上就是判断一个整数是否是2的幂次方的方法,通过位运算,可以高效地解决该问题。