概述
一.BigInteger类
package xun;
import java.math.*;
public class Myclass1 {
public static void main(String[] args) {
//针对大整数的处理类,支持任何精度的整数。除了基本的加减乘除操作,还提供了绝对值,相反数,最大公约数,质数判断等操作。
System.out.println("----BigInteger类----");
//参数中的双引号不能省略,因为参数是以字符串的形式存在的。
BigInteger bigInstance = new BigInteger("4");
System.out.println("将参数转换为指定的类型操作:"+bigInstance.floatValue());
System.out.println("加法操作:"+bigInstance.add(new BigInteger("6")));
System.out.println("减法操作:"+bigInstance.subtract(new BigInteger("2")));
System.out.println("乘法操作:"+bigInstance.multiply(new BigInteger("6")));
System.out.println("除法操作:"+bigInstance.divide(new BigInteger("6")));
System.out.println("取商操作:"+bigInstance.divideAndRemainder(new BigInteger("3"))[0]);
System.out.println("取余操作:"+bigInstance.divideAndRemainder(new BigInteger("3"))[1]);
System.out.println("k次方操作:"+bigInstance.pow(2));
System.out.println("相反数操作:"+bigInstance.negate());
//若n为负数,则做右移操作.
System.out.println("左移操作:"+bigInstance.shiftLeft(2));
//若n为负数,则做左移操作.
System.out.println("右移操作:"+bigInstance.shiftRight(2));
System.out.println("与操作:"+bigInstance.and(new BigInteger("6")));
System.out.println("或操作:"+bigInstance.or(new BigInteger("2")));
//r与val相等输出0,r<val输出-1,r>val输出1.
System.out.println("数字比较操作:"+bigInstance.compareTo(new BigInteger("4")));
System.out.println("判断数字是否相等操作:"+bigInstance.equals(new BigInteger("6")));
System.out.println("返回较小值操作:"+bigInstance.min(new BigInteger("6")));
System.out.println("返回较大值操作:"+bigInstance.max(new BigInteger("2")));
System.out.println("返回绝对值操作:"+bigInstance.abs());
System.out.println("返回最大公约数操作:"+bigInstance.gcd(new BigInteger("2")));
//BigInteger构造方法转换进制
//十进制数字20转换成2进制
String str1 = new BigInteger("20",10).toString(2);
//十进制数字20转换成8进制
String str2 = new BigInteger("20",10).toString(8);
//十进制数字20转换成16进制
String str3 = new BigInteger("20",10).toString(16);
//八进制数字110转换成16进制
String str4 = new BigInteger("110",8).toString(16);
//二进制数字10100转换成10进制
String str5 = new BigInteger("10100",2).toString(10);
System.out.println(str1);
System.out.println(str2);
System.out.println(str3);
System.out.println(str4);
System.out.println(str5);
}
}
二.BigDecimal类
(1)BigDecimal类的常用的几个构造方法
- BigDecimal(int):将int表示形式转换为BigDecimal对象
- BigDecimal(String) :将字符串表示形式转换为BigDecimal对象
- BigDecimal(double):将double表示形式转换为BigDecimal对象
(2)BigDecimal类常用方法
- add(BigDecimal):BigDecimal对象中的值相加,返回BigDecimal对象
- divide(BigDecimal):BigDecimal对象中的值相除,返回BigDecimal对象
- toString():将BigDecimal对象中的值转换成字符串
- subtract(BigDecimal):BigDecimal对象中的值相减,返回BigDecimal对象
- multiply(BigDecimal):BigDecimal对象中的值相乘,返回BigDecimal对象
- doubleValue():将BigDecimal对象中的值转换成双精度数
- floatValue():将BigDecimal对象中的值转换成单精度数
- longValue():将BigDecimal对象中的值转换成长整数
- intValue():将BigDecimal对象中的值转换成整数
package xun; import java.math.*; import org.omg.PortableServer.ID_ASSIGNMENT_POLICY_ID; public class Myclass1 { public BigDecimal mul(double num1,double num2) { BigDecimal b1= new BigDecimal(num1); BigDecimal b2= new BigDecimal(num2); return b1.multiply(b2); } public BigDecimal sub(double num1,double num2) { BigDecimal b1= new BigDecimal(Double.toString(num1)); BigDecimal b2= new BigDecimal(Double.toString(num2)); return b1.subtract(b2); } public BigDecimal div(double num1,double num2) { return div(num1,num2,8); } //定义除法,参数分别为除数,被除数,商后面小数点位数 public BigDecimal div(double num1,double num2,int b) { if(b<0) { System.out.println("ERROR:b必须大于0"); } BigDecimal b1=new BigDecimal(Double.toString(num1)); BigDecimal b2=new BigDecimal(Double.toString(num2)); //调用除法方法,保留b位小数点并将结果四舍五入。 return b1.divide(b2,b,BigDecimal.ROUND_HALF_UP); } public static void main(String[] args) { System.out.println("----BigDecimal类----"); //针对大数的处理类,加入了小数的概念,支持任何精度的定点数 BigDecimal b= new BigDecimal(2); System.out.println("加法操作:"+b.add(new BigDecimal(2))); Myclass1 a=new Myclass1(); System.out.println("自定义减法操作:"+a.mul(6.0,3.9)); System.out.println("自定义乘法操作:"+a.sub(8.0,3.9)); System.out.println("自定义除法操作:"+a.div(8.0,4.0,3)); System.out.println("自定义除法操作:"+a.div(8.0,2.0)); } }
最后
以上就是谨慎台灯为你收集整理的Java:大数字运算的全部内容,希望文章能够帮你解决Java:大数字运算所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复