题目要求
Given an integer, write a function to determine if it is a power of two.
判断一个整数是否是2的幂。
思路和代码
当我们从二进制的角度来看,这个题目就非常简单了。其实题目的要求等价于该整数对应的二进制数中,一共有几个1。该题目的难点在于考虑边界情况,比如-2^32,即10000000000000000000000000000000。虽然它只有一个1,但是它不是2的幂。
代码如下:
public boolean isPowerOfTwo(int n) {
if(n==1) return true;
while(n!=0){
if ((n & 1) == 1) break;
n >>>= 1;
}
return n==0;
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。