概述
在java语言中,每个整数类型都有自己描述的上限和下限,如果想要对非常大的整数做运算,那么就需要使用BigInteger类。
BigInteger类的构造方法
//该方法可以直接将十进制的字符串变成大整数
public BigInteger(String val){···}
BigInteger类的常用方法
因为BigInteger所创建的是对象,我们不能使用传统的算术运算符直接对其对象进行数学运算
BigInteger add(BigInteger augend) 加法运算
BigInteger subtract(BigInteger subtrahend) 减法运算
BigInteger multiply(BigInteger multiplicand) 乘法运算
BigInteger divide(BigInteger divisor) 除法运算
BigInteger [] divideAndRemainder(BigInteger val) 取余运算
-->数组索引为0的元素值就是除法运算的结果,数组索引为1的元素值就是取模运算的结果(余数)。
代码演示
public static void main(String[] args) {
//实例化一个BigInteger对象
BigInteger bigInteger1 = new BigInteger("167384920408588");
BigInteger bigInteger2 = new BigInteger("10000000000");
//加法运算
BigInteger add = bigInteger1.add(bigInteger2);
System.out.println(add.toString());
//减法运算
BigInteger subtract = bigInteger1.subtract(bigInteger2);
System.out.println(subtract.toString());
//乘法运算
BigInteger multiply = bigInteger1.multiply(bigInteger2);
System.out.println(multiply);
//除法运算,只能取到整数部分,小数部分会被舍去
BigInteger divide = bigInteger2.divide(bigInteger2);
System.out.println(divide);
//取余运算
BigInteger[] integers = bigInteger1.divideAndRemainder(bigInteger2);
System.out.println("除法运算的结果"+integers[0]+",余数"+integers[1]);
}
BigInteger转化为基本数据类型
因为BigInteger类是Number的实现类,因此我们可以使用byteValue(),shortValue(),intValue(),doubleValue()这些方法把BigInteger
对象转换为基本数据类型。
public static void main(String[] args){
BigInteger bigInteger1 = new BigInteger("1900000000000");
int num1 = bigInteger1.intValue();
double num2 = bigInteger1.doubleValue();
System.out.println(num1);
System.out.println(num1);
}