通过2进制的与运算
十进制 | 2进制 | 2进制 |
---|---|---|
2 | 10 | 00000010 |
3 | 11 | 00000011 |
4 | 100 | 00000100 |
5 | 101 | 00000101 |
6 | 110 | 00000110 |
7 | 111 | 00000111 |
8 | 1000 | 00001000 |
12 | 1100 | 00001100 |
13 | 1101 | 00001101 |
14 | 1110 | 00001110 |
15 | 1111 | 00001111 |
16 | 10000 | 00010000 |
17 | 10001 | 00010001 |
30 | 11110 | 00011110 |
31 | 11111 | 00011111 |
32 | 100000 | 00100000 |
4&3 = 00000100 & 00000011 = 0 -----------> 2的2次幂
5&4 = 00000101 & 00000100 =100
8&7 = 00001000 & 00000111 = 0 ---------->2的3次幂
14&13 = 00001110 & 00001101 = 1100
16&15 = 00010000 & 00001111 = 0 ---------->2的4次幂
/**
* lijietao @ 202009
*
* **/
public class Test1 {
public static void main(String[] args) {
Test1 t = new Test1();
boolean num = t.check(12);
System.out.println(String.format("检查一个数是否是2的指数次幂: %s", num));
}
boolean check(Integer value){
return (value & (value -1)) == 0;
}
}