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

分析:两种思路①一直除2判断余数如果最后余数是1肯定是2的幂数

                       ②按位与运算,一个数x如果是2的幂数,那么x的二进制里只有一个1,x-1二进制最高位变成了0,其他位就都是1,与x按位与运算结果为o的话就是2的幂数。

java:①

class Solution {
    public boolean isPowerOfTwo(int n) {
        if(n==0)
            return false;
        else if(n==1)
            return true;
        else
        {
            while(n%2==0&&n/2!=0)
            {
                n=n/2;
            }
            if(n==1)
                return true;
            else
                return false;
            
        }
       
     }

}

②:第二种思路

java:

class Solution {
    public boolean isPowerOfTwo(int n) {
        int maxint=2147483647;//考虑是否溢出
        int minint=-2147483647;
        if(n==0)
            return false;
        else
        {   if(n<minint||n>maxint)
                return false;
            else
                return((n&(n-1))==0);
        }
            
     }
}