java 一行代码判断一个数是否2的整数幂

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013278314/article/details/83817799

我们观察2的整数幂 换成二进制都有一个规律 如下:

2 -> 0000 0010        4 -> 0000  0100       8 -> 0000  1000

2-1= 1 ->  0001        4-1=3  ->   0011      8-1=7 ->     0111

这时我们 用 n & (n -1)  会发现结果都为0 故此我们的代码就出来了:

n & (n - 1) == 0 :如果为true的话  就表示为整数幂  否则不是

猜你喜欢

转载自blog.csdn.net/u013278314/article/details/83817799