📌  相关文章
📜  公共类 BigInteger { public static void main(String args[]) { long p=2147483648; } } - Java (1)

📅  最后修改于: 2023-12-03 14:50:04.628000             🧑  作者: Mango

Java程序:使用BigInteger类

在Java中,long类型的取值范围是-2^63 ~ 2^63-1。如果需要处理更大的数值,可以使用Java预先定义好的BigInteger类。在本文中,我们将介绍如何使用BigInteger类来处理大数值。

引入BigInteger类

在Java程序中,我们可以通过import语句引入java.math包,然后就能使用其中的BigInteger类了。

import java.math.BigInteger;
创建一个BigInteger对象

我们可以通过调用BigInteger类的构造函数来创建一个BigInteger对象,指定大数值的字符串表示方式:

BigInteger bigInt = new BigInteger("123456789012345678901234567890");

也可以直接将long类型的变量转换为BigInteger类型:

long num = 1234567890;
BigInteger bigInt = BigInteger.valueOf(num);
进行运算操作

BigInteger类支持多种运算操作,例如加法、减法、乘法和除法。这些操作返回的都是一个新的BigInteger对象。

BigInteger a = new BigInteger("123456789");
BigInteger b = new BigInteger("987654321");

// 加法
BigInteger sum = a.add(b); // sum = a + b

// 减法
BigInteger diff = a.subtract(b); // diff = a - b

// 乘法
BigInteger product = a.multiply(b); // product = a * b

// 除法
BigInteger quotient = a.divide(b); // quotient = a / b
常用方法

除了上述的运算操作,BigInteger类还提供了一些方法,用于获取数值大小、比较大小、取模等等。

BigInteger a = new BigInteger("123456789");
BigInteger b = new BigInteger("987654321");

// 获取当前数值的正负性
int signum = a.signum(); // signum = 1,表示a为正数

// 比较两个数值的大小
int comp = a.compareTo(b); // comp < 0,表示a < b

// 取模操作
BigInteger[] result = a.divideAndRemainder(b); // result[0] = a / b, result[1] = a % b
示例程序

下面是一个简单的示例程序,通过BigInteger类计算了一个较大的数值的平方和:

import java.math.BigInteger;

public class BigIntegerDemo {
    public static void main(String[] args) {
        BigInteger sum = BigInteger.ZERO;

        for (int i = 1; i <= 100000; i++) {
            BigInteger num = BigInteger.valueOf(i);
            sum = sum.add(num.pow(2));
        }

        System.out.println(sum);
    }
}

在上述程序中,我们定义了一个sum变量,用于存储100000个数值的平方和。在循环中,我们使用了valueOf()方法将int类型的变量转换为BigInteger类型,并使用add()方法进行加法运算,最后输出结果。

总结

BigInteger类在Java中是用于处理大数值的类,提供了多种运算操作和方法,方便开发者进行数值计算。在使用过程中,需要注意BigInteger对象本身是不可变的,每次进行运算后都会返回一个新的BigInteger对象。