算法问题-2的整数次幂
2的整数次幂次方
可以从二进制的角度考虑
4的二进制 0100
4-1的二进制 0011
那么4&(4-1) 0100 & 0011 = 0000,这就是规律,
package algorithm.ispowerof2;
public class IsPowerOf2 {
/**
* 判断一个数字是不是2的幂次方
*
* 本题可以考虑二进制,
* 4 0100 4-1 0011 4&(4-1) 0100 & 0011 = 0000,这就是规律
*/
public static boolean isPowerOf2(int n){
return (n&n-1)==0;
}
public static void main(String[] args) {
System.out.println(isPowerOf2(4));
}
}
结果 true
时间复杂度 o(1)
不恋尘世浮华,不写红尘纷扰