首页 > 编程笔记 > Java笔记 阅读:11

Java中的BigInteger大整数类(附带实例)

在 Java 语言中,提供了用于进行大数字运算的 BigInteger 类,该类位于 java.math 包中,被称为大整数类。

BigInteger 类型的数字范围要比 Integer 类型的数字范围大得多,并且支持任意精度的整数。

要使用 BigInteger 类,首先需要创建一个 BigInteger 对象。BigInteger 类提供了多种构造方法,其中最常用的是接收 String 类型参数的构造方法,具体语法如下:
BigInteger bigInteger = new BigInteger(String 数值型字符串);
BigInteger 类是一个引用数据类型,因此常规的运算符号(+、-、*、/)是不能使用的,可以通过该对象中相应的封装方法来进行操作。除了这些基础运算之外,该类还提供有求绝对值、相反数、最大公约数等的数学运算方法。

BigInteger 类中常用的数学运算方法如下表所示:

表:BigInteger 类的常用方法
方法 方法描述
BigInteger add(BigInteger val) 加法运算
BigInteger subtract(BigInteger val) 减法运算
BigInteger multiply(BigInteger val) 乘法运算
BigInteger divide(BigInteger val) 除法运算
BigInteger remainder(BigInteger val) 取余数运算
BigInteger[] divideAndRemainder(BigInteger val) 除法运算,返回数组的第 1 个值为商,第 2 个值为余数
BigInteger pow(int exponent) 做参数的 exponent 次方运算
BigInteger negate() 取相反数
BigInteger min(BigInteger val) 返回较小的数值
BigInteger max(BigInteger val) 返回较大的数值

接下来,通过案例来演示 BigInteger 类常用方法的使用:
import java.math.BigInteger;
import java.util.Scanner;

public class Demo {
    public static void main(String[] args) {
        BigInteger bigA = new BigInteger("1000000");
        BigInteger bigB = new BigInteger("200000");
        System.out.println("A+B的值: " + bigA.add(bigB));
        System.out.println("A-B的值: " + bigA.subtract(bigB));
        System.out.println("A×B的值: " + bigA.multiply(bigB));
        System.out.println("A÷B的值: " + bigA.divide(bigB));
        System.out.println("取余数: " + bigA.remainder(bigB));
        System.out.println("A÷B的值(返回数组):"
                + "--商:" + bigA.divideAndRemainder(bigB)[0]
                + "--余数:" + bigA.divideAndRemainder(bigB)[1]);
        System.out.println("A取相反数: " + bigA.negate());
        System.out.println("A、B比较返回小值: " + bigA.min(bigB));
        System.out.println("A、B比较返回大值: " + bigA.max(bigB));
    }
}
程序的运行结果如下:

A+B的值:300000
A-B的值:-100000
A×B的值:20000000000
A÷B的值:0
取余数:100000
A÷B的值(返回数组):--商:0--余数:100000
A取相反数:-100000
A、B比较返回小值:100000
A、B比较返回大值:200000

相关文章