給定一個整數n,判斷它是否為2的次方冪。 方法:2,4,8都是2的n次冪 任何整數乘以2,都相當於向左移動了一位,而2的0次冪為1,所以2的n次冪就是1向左移動n位。這樣,2的冪的特征就是二進位表示只有最高位為1,其他位均為0。二進位標下形式為: 10 100 1000 減1後與自身進行按位與,如果 ...
給定一個整數n,判斷它是否為2的次方冪。
方法:2,4,8都是2的n次冪
任何整數乘以2,都相當於向左移動了一位,而2的0次冪為1,所以2的n次冪就是1向左移動n位。這樣,2的冪的特征就是二進位表示只有最高位為1,其他位均為0。二進位標下形式為:
10 100 1000
減1後與自身進行按位與,如果結果為0,表示這個數是2的n次冪
01 011 0111
結果:
10&01 = 0 100&011 = 0 1000&0111 = 0
class Solution: def isPowerOfTwo(self, n): """ :type n: int :rtype: bool """ return (False if n<=0 else n&(n-1)==0)