1. 程式人生 > 其它 >用一條語句判斷一個整數是不是2的整數次方

用一條語句判斷一個整數是不是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的整數次冪~");
        }
    }
}