Java中BigInteger类的使用方法详解(全网最新)

  

Java中BigInteger类的使用方法详解

简介

在 Java 中对于 数值类型 的定义都是有范围的,而当我们需要用到超出这个范围的大整数时,就需要 BigInteger 类了。BigInteger 类属于 java.math 包,可以让我们处理任意长度的整数。

基本使用

1. 创建 BigInteger 对象

我们可以直接使用不同的构造函数或者将字符串传递给 BigInteger 的静态方法,从而创建 BigInteger 对象。代码示例如下:

import java.math.BigInteger;

public class Test {
    public static void main(String[] args) {
        // create a BigInteger object using a long value
        BigInteger bint = new BigInteger("1000000000000000000000000000000000000000000000000");

        // create a BigInteger object using BigInteger.valueOf method
        BigInteger bint2 = BigInteger.valueOf(1234567890);
    }
}

2. 进行计算

我们可以像普通的数值类型一样进行加、减、乘、除以及取余等操作。代码示例如下:

import java.math.BigInteger;

public class Test {
    public static void main(String[] args) {
        BigInteger a = new BigInteger("123456789");
        BigInteger b = new BigInteger("987654321");

        BigInteger c = a.add(b);  // addition
        BigInteger d = a.subtract(b);  // subtraction
        BigInteger e = a.multiply(b);  // multiplication
        BigInteger f = a.divide(b);  // division
        BigInteger g = a.remainder(b);  // remainder
        BigInteger h = a.pow(2);  // power

        System.out.println(c);
        System.out.println(d);
        System.out.println(e);
        System.out.println(f);
        System.out.println(g);
        System.out.println(h);
    }
}

3. 直接操作 BigInteger 对象

与普通的数值类型不同,BigInteger 对象是不可变的,不能直接修改对象的值。相反,在执行除法或者取余运算时,更改 BigInteger 对象的值会生成一个新的 BigInteger 对象。因此,在进行运算时,我们需要将 BigInteger 对象赋值给一个新的变量。代码示例如下:

import java.math.BigInteger;

public class Test {
    public static void main(String[] args) {
        BigInteger a = new BigInteger("123456789");
        BigInteger b = new BigInteger("987654321");
        BigInteger c = new BigInteger("1000000000000000000000000000000000000000000000000");

        BigInteger d = a.add(b);  // d = a + b
        BigInteger e = c.subtract(a);  // e = c - a
        BigInteger f = b.multiply(a);  // f = b * a
        BigInteger g = c.divide(b);  // g = c / b
        BigInteger h = a.negate();  // h = -a
        BigInteger i = c.abs();  // i = |c|
        BigInteger j = b.mod(a);  // j = b % a

        System.out.println(d);
        System.out.println(e);
        System.out.println(f);
        System.out.println(g);
        System.out.println(h);
        System.out.println(i);
        System.out.println(j);
    }
}

示例说明

示例1

我们需要计算 10! ,即:10 × 9 × 8 × 7 × 6 × 5 × 4 × 3 × 2 × 1 。由于这个数很大,所以普通的整数类型无法处理,需要使用 BigInteger。代码示例如下:

import java.math.BigInteger;

public class Test {
    public static void main(String[] args) {
        BigInteger result = BigInteger.ONE;

        for (int i = 1; i <= 10; i++) {
            result = result.multiply(BigInteger.valueOf(i));
        }

        System.out.println(result);
    }
}

示例2

我们需要计算 2 的 1000 次方 ,即: 2 ^ 1000。由于这个数很大,所以普通的整数类型无法处理,需要使用 BigInteger。代码示例如下:

import java.math.BigInteger;

public class Test {
    public static void main(String[] args) {
        BigInteger num = BigInteger.valueOf(2);
        BigInteger exp = BigInteger.valueOf(1000);

        BigInteger result = num.pow(exp.intValue());

        System.out.println(result);
    }
}

结论

在 Java 中,BigInteger 类是用来处理大整数运算的最佳选择。使用 BigInteger,我们可以处理任意长度的整数,进行基本运算和高级运算,例如乘方、平方根和质数测试等。

相关文章