java中BigInteger简介及用法详解
下文笔者讲述java中BigInteger的详解说明,如下所示
BigInteger的构造函数
BigInteger简介
BigInteger是java中用于表示大整型的数据类型 她可表示的数字,可以说是一个天文数字
BigInteger的使用说明
使用BigInteger需导入java.math.*包
BigInteger常用函数说明
value.Of(参数)
BigInteger.valueOf函数的功能: 将参数中的值转换为BigInteger对象例:
int a = 88; BigInteger f=BigInteger.valueOf(a); System.out.println("f="+f);
add()方法
add()方法的功能: 用于将两个大整数加起来例:
BigInteger c=new BigInteger("888"); BigInteger d=new BigInteger("999"); System.out.println("c+d="+c.add(d));
subtract()方法
将大整数相减例:前者减后者
BigInteger c=new BigInteger("15"); BigInteger d=new BigInteger("13"); System.out.println("d-c="+d.subtract(c)); 运行以上代码将输出 d-c=-2
multiply()方法
大整数相乘
BigInteger c=new BigInteger("6"); BigInteger d=new BigInteger("3"); System.out.println("c*d="+c.multiply(d));
divide()方法
大整数除法例
BigInteger c=new BigInteger("6"); BigInteger d=new BigInteger("4"); System.out.println("c/d="+c.divide(d)); // 答案输出;c/d=1
remainder()方法
大整数取余
pow(exponent)方法
大整数取exponent的指数例
a.pow(b)==a^b;
gcd()方法
将两个大整数取最大公约数例
a.gcd(b);
abs()方法
取绝对值例
BigInteger c=new BigInteger("-8"); System.out.println(c.abs()); //8
negate()方法
取数的相反数例
BigInteger c=new BigInteger("9"); System.out.println(c.negate()); // -9
mod()方法
对数进行取余
a.mod(b)=a%b=a.remainder(b);
max()方法,min()方法
分别是比较两个数的大小例
a.max(b); 取a,b中的最大值
compareTo()方法
比较两个大整数大小例:
public void testCompare() { BigInteger bigNum1 = new BigInteger("88"); BigInteger bigNum2 = new BigInteger("30"); //1.compareTo():返回一个int型数据(1 大于; 0 等于; -1 小于) int num = bigNum1.compareTo(bigNum2); //1 //2.max():直接返回大的那个数,类型为BigInteger // 原理:return (compareTo(val) > 0 ? this : val); BigInteger compareMax = bigNum1.max(bigNum2); //88 //3.min():直接返回小的那个数,类型为BigInteger // 原理:return (compareTo(val) < 0 ? this : val); BigInteger compareMin = bigNum1.min(bigNum2); //30 }
equals()方法
判断两个大整数是否相等例
c.equals(d) 相等就返回 true;
如何从控制台读取BigInteger
public void test() { Scanner s = new Scanner(System.in); // 读入 int n = sc.nextInt(); // 读入一个int; BigInteger m = sc.nextBigInteger(); // 读入一个BigInteger; while(sc.hasNext()){ System.out.print("sc.hasNext()=" + sc.hasNext()); } }
BigInteger的构造函数
BigInteger d=new BigInteger("98");
BigInteger中特殊变量的简介说明
BigInteger.ZERO,BigInteger.ONE,BigInteger.TEN
public void test() {
//0
BigInteger zero = BigInteger.ZERO;
//1
BigInteger one = BigInteger.ONE;
//10
BigInteger ten = BigInteger.TEN;
}
BigInteger转换为其它基本类型示例分享
public void BigIntegrConvertTest() {
BigInteger bigNum = new BigInteger("88");
int radix = 2;
//1.转换为bigNum的二进制补码形式
byte[] num1 = bigNum.toByteArray();
//2.转换为bigNum的十进制字符串形式
String num2 = bigNum.toString(); //88
//3.转换为bigNum的radix进制字符串形式
String num3 = bigNum.toString(radix);
//4.将bigNum转换为int
int num4 = bigNum.intValue();
//5.将bigNum转换为long
long num5 = bigNum.longValue();
//6.将bigNum转换为float
float num6 = bigNum.floatValue();
//7.将bigNum转换为double
double num7 = bigNum.doubleValue();
}
public void BigIntegrConvertTest() { BigInteger bigNum = new BigInteger("88"); int radix = 2; //1.转换为bigNum的二进制补码形式 byte[] num1 = bigNum.toByteArray(); //2.转换为bigNum的十进制字符串形式 String num2 = bigNum.toString(); //88 //3.转换为bigNum的radix进制字符串形式 String num3 = bigNum.toString(radix); //4.将bigNum转换为int int num4 = bigNum.intValue(); //5.将bigNum转换为long long num5 = bigNum.longValue(); //6.将bigNum转换为float float num6 = bigNum.floatValue(); //7.将bigNum转换为double double num7 = bigNum.doubleValue(); }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。