判断一个数是否为2的幂

Posted fsh001

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了判断一个数是否为2的幂相关的知识,希望对你有一定的参考价值。

判断一个数是否为2的幂

思想

例1、
4的补码为:
00000100
3的补码为:
00000011
4 & 3 = 0
因此 n & n-1 == 0,此数即为2的幂(n > 0)

例2、
4的补码为:
00000100
-4的补码为:
11111100
4 & -4 = 4
因此 n & -n == n,此数即为2的幂(n > 0)

公式

n & n - 1 == 0 (n > 0)
或
n & -n == n (n > 0)

以上是关于判断一个数是否为2的幂的主要内容,如果未能解决你的问题,请参考以下文章

快速判断一个数是否是4的幂次方,若是,并判断出来是多少次方!

判断整数是不是是2的幂次方

递归:判断一个数是否是2的幂

递归:判断一个数是否是2的幂

递归:判断一个数是否是2的幂

数字与数学7:幂的问题