2的幂次方

跟風遠走 提交于 2020-02-27 14:45:10

判断一个数n是不是2的幂次方

方法1:n除以2 余数是0  剩余除数再除以2  知道除数为0,如果余数一直是0则true;

    public static Boolean getResult(Integer n){
        if(n==2){
            return true;
        }else if(n==1){
            return false;
        }else{
            if(n%2!=0){
                return false;
            }else{
                return getResult(n/2);
            }
        }
    }

 

方法2:二进制

二进制中 2的幂次方都是1后面全是0的形式 如16  10000;所以n&(n-1)==0可以判断是否为这种形式的二进制;

    public static Boolean getResult(Integer  n){
        return (n&(n-1))==0;
    }

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!