Java中BigInteger类的使用方法详解
简介
在 Java 中对于 数值类型 的定义都是有范围的,而当我们需要用到超出这个范围的大整数时,就需要 BigInteger 类了。BigInteger 类属于 java.math 包,可以让我们处理任意长度的整数。
基本使用
1. 创建 BigInteger 对象
我们可以直接使用不同的构造函数或者将字符串传递给 BigInteger 的静态方法,从而创建 BigInteger 对象。代码示例如下:
import java.math.BigInteger;
public class Test {
public static void main(String[] args) {
// create a BigInteger object using a long value
BigInteger bint = new BigInteger("1000000000000000000000000000000000000000000000000");
// create a BigInteger object using BigInteger.valueOf method
BigInteger bint2 = BigInteger.valueOf(1234567890);
}
}
2. 进行计算
我们可以像普通的数值类型一样进行加、减、乘、除以及取余等操作。代码示例如下:
import java.math.BigInteger;
public class Test {
public static void main(String[] args) {
BigInteger a = new BigInteger("123456789");
BigInteger b = new BigInteger("987654321");
BigInteger c = a.add(b); // addition
BigInteger d = a.subtract(b); // subtraction
BigInteger e = a.multiply(b); // multiplication
BigInteger f = a.divide(b); // division
BigInteger g = a.remainder(b); // remainder
BigInteger h = a.pow(2); // power
System.out.println(c);
System.out.println(d);
System.out.println(e);
System.out.println(f);
System.out.println(g);
System.out.println(h);
}
}
3. 直接操作 BigInteger 对象
与普通的数值类型不同,BigInteger 对象是不可变的,不能直接修改对象的值。相反,在执行除法或者取余运算时,更改 BigInteger 对象的值会生成一个新的 BigInteger 对象。因此,在进行运算时,我们需要将 BigInteger 对象赋值给一个新的变量。代码示例如下:
import java.math.BigInteger;
public class Test {
public static void main(String[] args) {
BigInteger a = new BigInteger("123456789");
BigInteger b = new BigInteger("987654321");
BigInteger c = new BigInteger("1000000000000000000000000000000000000000000000000");
BigInteger d = a.add(b); // d = a + b
BigInteger e = c.subtract(a); // e = c - a
BigInteger f = b.multiply(a); // f = b * a
BigInteger g = c.divide(b); // g = c / b
BigInteger h = a.negate(); // h = -a
BigInteger i = c.abs(); // i = |c|
BigInteger j = b.mod(a); // j = b % a
System.out.println(d);
System.out.println(e);
System.out.println(f);
System.out.println(g);
System.out.println(h);
System.out.println(i);
System.out.println(j);
}
}
示例说明
示例1
我们需要计算 10! ,即:10 × 9 × 8 × 7 × 6 × 5 × 4 × 3 × 2 × 1 。由于这个数很大,所以普通的整数类型无法处理,需要使用 BigInteger。代码示例如下:
import java.math.BigInteger;
public class Test {
public static void main(String[] args) {
BigInteger result = BigInteger.ONE;
for (int i = 1; i <= 10; i++) {
result = result.multiply(BigInteger.valueOf(i));
}
System.out.println(result);
}
}
示例2
我们需要计算 2 的 1000 次方 ,即: 2 ^ 1000。由于这个数很大,所以普通的整数类型无法处理,需要使用 BigInteger。代码示例如下:
import java.math.BigInteger;
public class Test {
public static void main(String[] args) {
BigInteger num = BigInteger.valueOf(2);
BigInteger exp = BigInteger.valueOf(1000);
BigInteger result = num.pow(exp.intValue());
System.out.println(result);
}
}
结论
在 Java 中,BigInteger 类是用来处理大整数运算的最佳选择。使用 BigInteger,我们可以处理任意长度的整数,进行基本运算和高级运算,例如乘方、平方根和质数测试等。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java中BigInteger类的使用方法详解(全网最新) - Python技术站