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

Posted 梵高先生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了位运算判断一个数是否为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 }

 

以上是关于位运算判断一个数是否为2的n次方的主要内容,如果未能解决你的问题,请参考以下文章

如何判断一个数是不是是2的n次方

怎么巧判断一个整数是不是是2的n次方幂

面试题判断一个数是否为2的N次方---终极接法来啦

面试题判断一个数是否为2的N次方---终极接法来啦

HERD--位运算

判断整数是不是是2的幂次方