Given an integer, write a function to determine if it is a power of two.
對于小于等于0的數(shù),他們肯定不是2的冪指數(shù)倍漠秋》绶叮考慮大于等于零的數(shù),當(dāng)然可以循環(huán)暴力求解看是否能始終被二除摹恰,但是這里有一種更好的方法對于一個正數(shù)來說辫继,如果一個數(shù)是2的冪,那么他肯定是1000000這種形式俗慈,對于這個數(shù)姑宽,減去1,可以得到011111111闺阱,可以看到這兩個數(shù)每個位都是不一樣的炮车,只要檢查兩個數(shù)是否相與為零就好了。
class Solution {
public boolean isPowerOfTwo(int n) {
if(n<=0)
return false;
else
return ((n-1)&n)==0;
}
}