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

匿名 (未验证) 提交于 2019-12-03 00:40:02
 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 }

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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!