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

2021-04-17  本文已影响0人  McDu

如果一个整数是2的整数次幂,当它转化为二进制时,只有最高位是1,其他位都是0。

十进制 二进制 是否为2的整数次幂
8 1000B
16 10000B
32 100000B
64 1000000B
100 1100100B

2的整数次幂一旦减1,它的二进制数字就全部变为1

十进制 二进制 n&n-1 是否为2的整数次幂
8 111B 0
16 1111B 0
32 11111B 0
64 111111B 0
100 1100000B 1

0 和 1 按位与的结果是0,所以2的整数次幂和它本身减1的结果进行运算结果必定是0.

function isPowerOf2(num) {
    return (num&num-1) === 0;
}
上一篇下一篇

猜你喜欢

热点阅读