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的整数次幂方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
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判断数字位数的方法总结
普通方法: 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判断是否是整数,小数或实数的正则表达式
经常会遇到这样的情况,需要判断一个字符串是否是一个合法的数,包括整数,小数或者实数. 网上查到很多文章大多是判断这个字符串是否全为数字,比如下面这段来自StringUtils的代码,可以看到,13.2这样的数字实际上会返回false,可是,他的确是一个数字. public static boolean isNumeric(String str) { if (str == null) { return false; } int sz = str.length(); for (int i = 0;
-
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求两个数中的大数(实例讲解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.
随机推荐
- Java中return的用法(两种)
- iOS中实现简单易懂秒杀倒计时/倒计时代码
- IOS 避免self循环引用的方法的实例详解
- mysql中取系统当前时间,当前日期方便查询判定的代码
- 基于jquery实现日历签到功能
- jQuery复制节点用法示例(clone方法)
- 通过Session案例分析一次性验证码登录
- JQUERY表单暂存功能插件分享
- MySQL ERROR 2013 (HY000)错误解决方法
- js实现基于正则表达式的轻量提示插件
- jquery tab插件制作实现代码
- 分享一个自己动手写的jQuery分页插件
- JQuery勾选指定name的复选框集合并显示的方法
- Bootstrap表单Form全面解析
- (兼容ff/ie)td点击背景变色特效
- Win2003架设WEB服务器与IIS的备份和移植
- Android实现千变万化的ViewPager切换动画
- 高手总结分析如果利用baidu分词算法分析之二(转)
- Angular 5.x 学习笔记之Router(路由)应用
- 解决redis修改requirepass后不生效的问题