概述
如果要存储比 Integer 更大的数字,Integer 数据类型就无能为力了。因此,Java 中提供 BigInteger 类来处理更大的数字。
BigInteger 类型的数字范围较 Integer 类型的数字范围要大得多。BigInteger 支持 任意精度的整数,也就是说在运算中 BigInteger 类型可以准确地表示 任何大小的整数值。
除了基本的 加、减、乘、除 操作之外,BigInteger 类还封装了 很多操作,像求 绝对值、相反数、最大公约数 以及判断是否为 质数 等。
创建对象
要使用 BigInteger 类,首先要创建一个 BigInteger 对象。BigInteger 类提供了很多种构造方法,其中最直接的一种是参数以 字符串 形式代表要处理的数字。
BigInteger(String val)
这里的 val 是数字十进制的字符串。
例子:
将数字 5 转换为 BigInteger 对象,语句如下:
BigInteger bi = new BigInteger("5")
注意:这里数字 5 的双引号是必需的,因为 BigInteger 类构造方法要求参数是字符串类型。
常用操作
例子:
编写一个 Java 程序,将用户输入的数字作为 BigInteger 对象,然后调用该对象的各种方法实现加、减、乘、除和其他运算,并输出结果。具体实现代码如下:
import java.math.BigInteger;
import java.util.Scanner;
public class Test09 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入一个整型数字:");
// 保存用户输入的数字
int num = input.nextInt();
// 使用输入的数字创建BigInteger对象
BigInteger bi = new BigInteger(num + "");
// 计算大数字加上99的结果
System.out.println("加法操作结果:" + bi.add(new BigInteger("99")));
// 计算大数字减去25的结果
System.out.println("减法操作结果:" + bi.subtract(new BigInteger("25")));
// 计算大数字乘以3的结果
System.out.println("乘法橾作结果:" + bi.multiply(new BigInteger("3")));
// 计算大数字除以2的结果
System.out.println("除法操作结果:" + bi.divide(new BigInteger("2")));
// 计算大数字除以3的商
System.out.println("取商操作结果:" + bi.divideAndRemainder(new BigInteger("3"))[0]);
// 计算大数字除以3的余数
System.out.println("取余操作结果:" + bi.divideAndRemainder(new BigInteger("3"))[1]);
// 计算大数字的2次方
System.out.println("取 2 次方操作结果:" + bi.pow(2));
// 计算大数字的相反数
System.out.println("取相反数操作结果:" + bi.negate());
}
}
上述代码将用户输入的整型数字保存到 num 变量中,由于 BigInteger 类的构造方法只接收字符串类型的参数,所以使用“new BigInteger(num+””)”代码来创建 BigInteger 对象。接下来的代码演示了如何调用 BigInteger 类提供的运算方法
执行结果如下:
请输入一个整型数字:
125
加法操作结果:224
减法操作结果:100
乘法橾作结果:375
除法操作结果:62
取商操作结果:41
取余操作结果:2
取 2 次方操作结果:15625
取相反数操作结果:-125