判断一个数是否时2的整数次方

题目描述:

  给一个数字 N,判断是否是2的整数次方?

解题方向:可以根据二进制的特点,用消去一法直接得出结果。

消去一法:  N--1可以使N的最低位的1为0,所以最低位的1之后的每一位都是0,因此 N &(N--1)(核心)就可以消去最低为的1.

题解思路:由于2的整数次方二进制表示形式只有一个1,所以利用消去1法后,结果一定为0.

代码:

//消去一法解是否是2的整数次方
    public static boolean  f(int N){  //输入的N不能为0
        if((N & (N-1))==0){
            return true;
        }else{
            return false;
        }
    }

猜你喜欢

转载自www.cnblogs.com/songchengyu/p/12657651.html