1 import java.util.Scanner; 2 3 /** 4 * 功能:用位运算,判断一个数是否为2的n次方。 5 * 思路:用1做移位操作,然后判断移位后的值是否与给定的数相同。 6 */ 7 public class Main3 { 8 9 public boolean isPower(int n) { 10 11 if (n < 1) { 12 return false; 13 } 14 15 int m = 1; 16 while (m < n) { 17 m = m << 1; 18 } 19 20 if (m == n) { 21 return true; 22 } 23 24 return false; 25 } 26 27 public static void main(String[] args) { 28 29 Scanner scanner = new Scanner(System.in); 30 Main3 main3 = new Main3(); 31 32 while (scanner.hasNext()) { 33 34 int n = scanner.nextInt(); 35 System.out.println(main3.isPower(n)); 36 } 37 } 38 }