BigInteger类

133 阅读1分钟

概述

在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);
}