码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-07-07 23:56:07      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:移位   div   OLE   main   ann   asn   int   power   stat   

 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 }

 

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

标签:移位   div   OLE   main   ann   asn   int   power   stat   

原文地址:https://www.cnblogs.com/jiangyi-uestc/p/9278801.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!