您的位置:首页 > 其它

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

2017-02-10 10:57 393 查看
转自 http://blog.csdn.net/sanqima/article/details/35283683

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

原理:

2的阶次方数用二进制表示为:1开头,其后是若干个0

当我们需要判断一个整数是否是2的阶次方时,只需要将该整数减去1后,和该整数做位于(&)运算

若结果为0,则成立,否则就不是

public static void main(String[] args) {

Scanner scan = new Scanner(System.in);
while(true){
System.out.print("\n请输入一个整数(0退出):");
int input = scan.nextInt();

if(input == 0){
System.out.println("已退出");
break;
}

if((input & (input-1))==0 && input != 0){
System.out.print(" 是2的阶次方数");
}else{
System.out.print(" 不是2的阶次方数");
}
}
scan.close();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: