java中幂指数值的运算
来源:互联网 发布:王国维人生三境界知乎 编辑:程序博客网 时间:2024/04/30 13:37
说到幂指数的运算我们就会用到Math.pow(double a,double b),返回的结果是a的b次方。
这个方法可以满足我们大多数幂指数的计算,但是每次访问的值和传入的值都是double,自己不想去转的话怎么办,我们有一种新的方案。
方案前提:幂指数的底数是2的倍数。
这里我们就用到了移位运算(移位运算是基于二进制来的,所以方案前提就是这个依据),如我们求2的3次方,我们可以用2<<(3-1) 来计算出结果。
4的2次方,我们先要把4转化为2的2次方,再来2<<(4-1)来计算出结果。
下面这个方法实现的效果是我们传入一个2的倍数相加的两个数,比如12(是4+8),我们把它自动计算出[4,8]
再比如18 ,我们把它计算出[2,16]
再比如22, 我们把它计算出[2,4,16]
/** * 以2的次方开始的转换成整型数组,字符串数组 * @param sum 传入派系的值,可以是一个派系的值,也可以是多个派系相加的值 * 2^1 + 2^2 这种 * 突然忘记移位操作也是一种指数幂的运算 * @return */ private static int[] toUgroupArray(int sum){ if(sum < 0){ System.out.println("you have an eroor code"); }else if(sum == 0) { System.out.println("you have no choise code"); }else{ String binaryCode = Integer.toBinaryString(sum); System.out.println("binary code:"+binaryCode); int index = binaryCode.length() -1; String str = ""; for(int i=0;i<binaryCode.length();i++){ if(binaryCode.charAt(i) == '1'){ str = str + index +","; } index --; } str = str.substring(0, str.length()-1); System.out.println(str); String[] strArray = str.split(","); int[] result = new int[strArray.length]; //也可以返回一个字符数组 //String[] result2 = new String[strArray.length]; for(int i=0;i<strArray.length;i++){ //result[i] = (int)Math.pow(2, Double.parseDouble(strArray[i])); result[i] = 2 << (Integer.parseInt(strArray[i])-1); } return result; } return null; }
0 0
- java中幂指数值的运算
- Java计算幂的指数
- 计算高精度指数运算中遇到的问题
- Leetcode 89: Java移位运算符作指数的开方
- java算法-指数运算(大数运算)
- 模的指数运算算法
- 算法之运算 模的指数运算
- ”^“运算符重载实现幂指数运算
- word2000中输入幂指数的技巧
- 指数运算
- 指数运算
- 指数运算
- 取余运算的Lyapunov指数
- 在matlab中,数组的指数运算有好几种定义方式
- 大数的幂指数计算Java代码实现
- 二次指数平滑法求预测值的Java代码
- NYOJ 112 指数运算
- 112 指数运算
- 黑马程序员——C语言基础---指针1
- Android入门简介
- 关于 tomcat 集群中 session 共享的三种方法
- ORA-29275:部分多字节字符
- SEL的使用
- java中幂指数值的运算
- 【经典算法】:蛇形填数,最简单的方法了。。。
- 关于StoryBoard的使用(1)自定义一个StoryBoard
- 修改 mvc webapi 默认返回 json 格式
- MyEclipse 8.5 注释模板设置
- 常用的tomcat和webLogic的区别
- Spark的Shuffle机制
- CentOS下安装JDK1.7
- C#编程规范