package 判断一个整数是不是2的整数次方;
import java.util.Scanner;
/**
* @author 邓雪松 (づ ̄ 3 ̄)づ)
* @create 2021-10-23-16-28
* 问题:
* 用一条语句判断一个整数是不是2的整数次方
* 思路:想2的整数次方-》2进制形式的特点
* 特点是:二进制的某一位上是1,其余位为0,也就是它的二进制中只有一个1
* 问题转换为:一个整数的二进制中是不是只有一个1
* 其实结合上一题想还需要,看例二,用到的公式是:(x-1)&x会消掉最低位的1
*/
public class Demo {
public static void main(String[] args) {
System.out.println("亲,请输入一个整数,让我来判断是不是2的整数次幂~:");
Scanner scanner = new Scanner(System.in);
int x = scanner.nextInt();
if(((x-1)&x)==0){
System.out.println("你输入的是2的整数次幂~");
}else{
System.out.println("你输入的不是2的整数次幂~");
}
}
}