首页 > 代码库 > 判断一个整数不是2的阶次方树
判断一个整数不是2的阶次方树
判断一个整数不是2的阶次方树
如果是一个2的阶次方,那么它的二进制数的首位一般是1,后面接若干个0。比如8就是1000,64是100 0000。 如果将这个数减1后,再与该数做和&运算,则改全为0.
package cn.usst.DataTest; import java.io.*; /** * 从键盘输入一个值 */ public class InputData { static private String s = ""; static public void input() { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); try { s = br.readLine(); } catch (IOException e) { throw new IllegalArgumentException(); } } static public int getInt(){ input(); return Integer.parseInt(s); } }
package cn.usst.DataTest; /** * 判断一个整数不是2的阶次方树 * @author G-Xia * */ public class Result { void print(int d){ if (((d-1)&d) == 0 && (d !=0 )){ System.out.println("是2的阶次方"); }else{ System.out.println("不是2的阶次方"); } } }
package cn.usst.DataTest; public class DateTest { public static void main(String[] args) { Result result = new Result(); System.out.println("please input integer:"); int a = InputData.getInt(); result.print(a); } }
判断一个整数不是2的阶次方树
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。