📜  Java中的 BigInteger 类(1)

📅  最后修改于: 2023-12-03 15:16:20.702000             🧑  作者: Mango

Java中的BigInteger类

Java中的BigInteger类是用于表示任意精度整数的类,它允许我们处理比long类型更大的数。BigInteger类位于java.math包中,我们需要导入该包才能使用该类。

创建BigInteger对象

我们可以使用如下方式创建一个BigInteger对象:

BigInteger num1 = new BigInteger("123456789012345678901234567890");
BigInteger num2 = BigInteger.valueOf(123456789);

上述代码中,第一行通过使用字符串来创建一个BigInteger对象,而第二行使用long类型的值来创建一个BigInteger对象。另外,BigInteger类还提供了一些常量,如:

BigInteger ZERO = BigInteger.ZERO;      // 表示值为0的BigInteger对象
BigInteger ONE = BigInteger.ONE;        // 表示值为1的BigInteger对象
BigInteger TEN = BigInteger.TEN;        // 表示值为10的BigInteger对象
BigInteger类的常用方法

BigInteger类提供了许多方法,我们来一一介绍:

add和subtract方法
BigInteger num1 = new BigInteger("123456789012345678901234567890");
BigInteger num2 = BigInteger.valueOf(123456789);
BigInteger sum = num1.add(num2);         // 求和
BigInteger diff = num1.subtract(num2);   // 求差
multiply和divide方法
BigInteger num1 = new BigInteger("123456789012345678901234567890");
BigInteger num2 = BigInteger.valueOf(123456789);
BigInteger product = num1.multiply(num2);    // 求积
BigInteger quotient = num1.divide(num2);     // 求商
mod方法
BigInteger num1 = new BigInteger("123456789012345678901234567890");
BigInteger num2 = BigInteger.valueOf(123456789);
BigInteger remainder = num1.mod(num2);   // 求余数
compareTo方法
BigInteger num1 = new BigInteger("123456789012345678901234567890");
BigInteger num2 = BigInteger.valueOf(123456789);
int result = num1.compareTo(num2);    // num1大于num2则为1,等于则为0,小于则为-1
equals和hashCode方法
BigInteger num1 = new BigInteger("123456789012345678901234567890");
BigInteger num2 = new BigInteger("123456789012345678901234567890");
boolean isEqual = num1.equals(num2);     // 判断两个BigInteger对象是否相等
int hash1 = num1.hashCode();             // 获取BigInteger对象的哈希码
int hash2 = num2.hashCode();
toString方法
BigInteger num1 = new BigInteger("123456789012345678901234567890");
String str = num1.toString();         // 将BigInteger对象转换为字符串
BigInteger类的性能问题

尽管BigInteger类可以处理更大的数,但是它在处理大数运算时的性能问题不容忽视。因此,在实际应用中,我们需要根据具体情况进行权衡和选择。