java 判断一个数是否为2的整数次幂方法

当不考虑负数时,对于此题分析可知,当输入值小于1时,此数肯定不是2的整数次幂。

当输入值大于一时,我们可以发现一个规律。2的整数次幂用二进制表示为:

2d = 10b;  4d = 100b; 8d = 1000b

二进制首位为一,其余各位均为零。

所以我们可以通过判断输入值转换为二进制时首位为一,其余各位为0,这样就能保证输入值为2的整数次幂。

但是这样做又过于繁琐,我们可以只判断二进制数中最后一次出现“1"的位置,使用String,lastIndexOf();方法即可。

而且我们还可以发现此规律同样适用于输入1的情况。

那么简洁的代码就这样产生了。

public static boolean isPowerOfTwo(int n) {
		String str = Integer.toBinaryString(n);
		if(n < 1)
			return false;
		else if(str.lastIndexOf("1") == 0)
			return true;
		else
			return false;
  }

以上这篇java 判断一个数是否为2的整数次幂方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Java正则验证正整数的方法分析【测试可用】

    本文实例讲述了Java正则验证正整数的方法.分享给大家供大家参考,具体如下: package des; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Num { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Num p=new Num(); S

  • 详解Java判断是否是整数,小数或实数的正则表达式

    经常会遇到这样的情况,需要判断一个字符串是否是一个合法的数,包括整数,小数或者实数. 网上查到很多文章大多是判断这个字符串是否全为数字,比如下面这段来自StringUtils的代码,可以看到,13.2这样的数字实际上会返回false,可是,他的确是一个数字. public static boolean isNumeric(String str) { if (str == null) { return false; } int sz = str.length(); for (int i = 0;

  • Java判断数字位数的方法总结

    普通方法: import java.util.Scanner; public class Digits { public static void main(String[] args){ Scanner input=new Scanner(System.in);//声明扫描仪变量 System.out.println("请输入0-999999999整数");//系统提示输入 try{ //监听异常 while(true){ int num=input.nextInt(); int co

  • java 判断一个数是否为2的整数次幂方法

    当不考虑负数时,对于此题分析可知,当输入值小于1时,此数肯定不是2的整数次幂. 当输入值大于一时,我们可以发现一个规律.2的整数次幂用二进制表示为: 2d = 10b:  4d = 100b: 8d = 1000b 二进制首位为一,其余各位均为零. 所以我们可以通过判断输入值转换为二进制时首位为一,其余各位为0,这样就能保证输入值为2的整数次幂. 但是这样做又过于繁琐,我们可以只判断二进制数中最后一次出现"1"的位置,使用String,lastIndexOf();方法即可. 而且我们还

  • java 判断一个数组中的数值是否连续相邻的方法

    * 判断一个数组中的数值是否连续相邻 * 满足以下条件: * 1.0是例外可以反复出现 0可以通配任何字符 * 2.相同的数值不会重复出现 * 3.该数组可以是乱序的 * 当数组不含有0时满足最大值-最小值=n(数组长度)-1 * 当数组数组含有0时.满足最大值-最小值<n(数组长度)-1 * 所以,当最大值最大值-最小值>n(数组长度)-1时,一定不是连续相邻数组 package datastruct.usearray; public class JudgeAdjacent { privat

  • java如何判断一个数是否是素数(质数)

    目录 java判断一个数是否是素数(质数) 质数(prime number)又称素数,有无限个 思路 java 求1-100之间的质数 质数定义: 1.质数实例一 2.质数实例二 3.质数实例三 4.质数实例四 5.质数实例五 6.质数实例六 java判断一个数是否是素数(质数) 质数(prime number)又称素数,有无限个 质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数,这样的数称为质数. import java.util.Scanner; public class Te

  • java判断各类型字符个数实例代码

    目录 描述 输入描述: 输出描述: 描述 输入一行字符串,分别统计出其中英文字母.空格.数字和其它字符的个数 输入描述: 控制台随机输入一串字符串 输出描述: 输出字符串中包含的英文字母个数,数字个数,空格个数,其它字符个数(格式为:英文字母x数字x空格x其他x),预设代码中已给出输出. import java.util.Scanner; public class Main { public static void main(String[] args) { int numbers = 0; i

  • Java判断List中相同值元素的个数实例

    如下所示: Map<Object, Integer> map = new TreeMap<Object, Integer>(); for (Object i : listIp) { if (map.get(i) == null) { map.put(i, 1); } else { map.put(i, map.get(i) + 1); } } 以上这篇Java判断List中相同值元素的个数实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • Java 判断两个字符串是否由相同的字符组成的实例

    问题:由相同的字符组成是指两个字符串,字母以及各个字母的个数是相同的,只是顺序不同.如:"aaaabbc"与"abcbaaa"是由相同字符组成. 方法一:排序法,也是最容易想到的方法,将两个字符串转换为字节数组,分别排序后,判断是否相同即可. 方法二:集合法(空间换时间),利用Map集合key的唯一性,遍历第一个字符串,将字符作为key,字符出现的次数作为value,若遇到重复字符则将value+1.之后遍历第二个字符串,遇到字符就将对应的value-1,若valu

  • Java判断字符串是否为IP地址的方法

    Java 判断字符串是否为IP地址,供大家参考,具体内容如下 1.代码 主要就是这么几个条件 非空 长度符合 0.0.0.0 - 255.255.255.255 包含分隔符 且 个数正确 四个全部是数字,且都在合理的范围内 /** * 判断某个字符串是否是一个 IP 地址 * * @param str 字符串 */ public static boolean isIpStr(String str) { // 非空 // boolean notBlank = StringUtils.isNotBl

  • java判断ftp目录是否存在的方法

    本文为大家分享了java判断ftp目录是否存在的方法,供大家参考,具体内容如下 package com.soft4j.log4j; import java.io.IOException; import sun.net.ftp.FtpClient; public class FtpTest { static String middle_ftpServer = "10.103.2.250"; static String middle_user = "ora9iftp";

  • Java判断IP地址为内网IP还是公网IP的方法

    本文实例讲述了Java判断IP地址为内网IP还是公网IP的方法.分享给大家供大家参考.具体分析如下: tcp/ip协议中,专门保留了三个IP地址区域作为私有地址,其地址范围如下: 10.0.0.0/8:10.0.0.0-10.255.255.255 172.16.0.0/12:172.16.0.0-172.31.255.255 192.168.0.0/16:192.168.0.0-192.168.255.255 那么,直接上代码吧: 复制代码 代码如下: public static boolea

  • java求两个数中的大数(实例讲解)

    java中的max函数在Math中 应用如下: int a=34: int b=45: int ans=Math.max(34,45); 那么ans的值就是45. 以上这篇java求两个数中的大数(实例讲解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

随机推荐