231 2的幂

原题链接:https://leetcode-cn.com/problems/power-of-two/

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

题目:给定一个整数,编写一个函数来判断它是否是 2 的幂次方。

 题目分析:我分成两种情况,一种是n<=0;一种是n>0

(1)当为第一种情况时,直接return false即可

(2)当为第二种情况时,我用的是二进制的与(&)运算------同1得1

2^0=1-----0001         2^1=2--------0010        2^2=4------0100        2^3=8------1000

0-----------0000                 1--------0001                3------0011               7-------0111

1&0=0                                 2&1=0                      4&3=0                   8&7=0

1&(1-1)                            2&(2-1)                 4&(4-1)             8&(8-1)

通过上面的分析我们可以看出,如果n是2的次幂的话,那么n&(n-1)的结果为0,那么我们可以得出,如果n&(n-1)=0的话那么n就是2的次幂,否则则不是

class Solution {
    public boolean isPowerOfTwo(int n) {
        if(n<=0){
            return false;
        }
        return (n&(n-1))==0?true:false;
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值