【位运算】判断一个数是否为2的n次方

 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 }

猜你喜欢

转载自www.cnblogs.com/jiangyi-uestc/p/9278801.html