Java中的BigInteger大整数类(附带实例)
在 Java 语言中,提供了用于进行大数字运算的 BigInteger 类,该类位于 java.math 包中,被称为大整数类。
BigInteger 类型的数字范围要比 Integer 类型的数字范围大得多,并且支持任意精度的整数。
要使用 BigInteger 类,首先需要创建一个 BigInteger 对象。BigInteger 类提供了多种构造方法,其中最常用的是接收 String 类型参数的构造方法,具体语法如下:
BigInteger 类中常用的数学运算方法如下表所示:
接下来,通过案例来演示 BigInteger 类常用方法的使用:
BigInteger 类型的数字范围要比 Integer 类型的数字范围大得多,并且支持任意精度的整数。
要使用 BigInteger 类,首先需要创建一个 BigInteger 对象。BigInteger 类提供了多种构造方法,其中最常用的是接收 String 类型参数的构造方法,具体语法如下:
BigInteger bigInteger = new BigInteger(String 数值型字符串);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