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)
不会,我可以学;落后,我可以追赶;跌倒,我可以站起来!