首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

判断一个数是不是是2的幂的快速方法

2012-10-06 
判断一个数是否是2的幂的快速方法使用Java语言编写程序来判断一个整数是不是2的阶次方数,要求使用尽量快速

判断一个数是否是2的幂的快速方法
使用Java语言编写程序来判断一个整数是不是2的阶次方数,要求使用尽量快速简便的方法。

答:如果一个数是2的阶次方数,那么它的二进制数的首位一般是1,后面接若干位0。比如8就是1000,64是1000000。如果将这个数减1再与该数做&运算,则应该全部位都是0。所以如果一个数d,满足d&(d-1)==0,则这个数必定是可以被2的幂整除的数。

import java.util.Scanner;public class Valid {        public static boolean doValid(int Number){                if((((Number-1)&Number)==0)&&Number!=0){                        return true;                }                return false;        }        public static void main(String[] args){                Scanner s = new Scanner(System.in);                System.out.print("Input a number : ");                boolean result = Valid.doValid(s.nextInt());                if(result){                        System.out.println("可以被2的幂整除!");                }else{                        System.out.println("不可以被2的幂整除!");                }        }}



热点排行