2的整数幂

引言:

判断一个数是否为2的整数次幂

2的整数幂

判断一个数是否为2的整数次幂

第一眼看完这个题,会想到的办法:

  1. 先判断奇偶,是奇数直接false
  2. 如果是偶数,就从2开始平方2,4,16,32,32*32…

但其实,我们如果知道巧妙的运用位运算:

IMG_0032

代码只有一行,就可以搞定

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/**
* @author 董文浩
* @Date 2020/7/10 20:57
* 2的整数幂:
* 判断一个数,是否为2的整数次幂
*/
public class IntegralPowerOf2 {
//如果使用位运算,这道题会非常的简单,如下

public static boolean isIntegralPowerOf2(int num){
return (num & num-1) == 0;
}


public static void main(String[] args) {
System.out.println(isIntegralPowerOf2(1024));
System.out.println(isIntegralPowerOf2(65536));
System.out.println(isIntegralPowerOf2(60000));
//输出结果:true true false
}
}