判断一个数是否为2的整数次幂
- 方法1:
public class text{ public static void main(String[] args){ System.out.println(isPowerOf(100)); } private static boolean isPowerOf(int num) { int t=1; while (t<=num){ if (t==num){ return true; } t*=2; } return false; } }- 方法2:有一定的优化,但在时间复杂度上仍是O(logn),本质上并没有变
public class text{ public static void main(String[] args){ System.out.println(isPowerOf(100)); } private static boolean isPowerOf(int num) { int t=1; while (t<=num){ if (t==num){ return true; } t=t<<1; } return false; } }- 方法3:
public class text{ public static void main(String[] args){ System.out.println(isPowerOf(100)); } private static boolean isPowerOf(int num) { return (num&num-1)==0; } }- 讲解:
本文介绍三种方法判断一个数是否为2的幂次方,包括迭代乘法、位移运算和位运算技巧,深入解析算法原理及优化。

1552





