用一条语句判断一个整数是不是2的整数次方

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的整数次幂~");
        }
    }
}
posted @ 2021-10-23 16:39  ╰(‵□′)╯  阅读(42)  评论(0)    收藏  举报