【位运算】判断一个数是否为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 }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM