在现实生活中,我们经常遇到数字,有时很小但有时很大,而在编程原始数据类型时,存在一个缺点,即它们只能处理最大到一个很小的唯一范围的数字,但要满足我们的要求,Java引入了BigInteger和BigDecimal类,与原始数据类型不同,这些类可以动态处理数字,因此可以处理非常长的数字。
首先让我们讨论BigInteger类:
可以通过以下语句导入该类:import java.math.BigInteger;
如上所示,BigInteger类是math软件包的一部分。
考虑一下程序:
import java.util.Scanner;
import java.math.BigInteger;
class BigIntegerExample
{
	public static void main(String args[])
	{
		Scanner KB=new Scanner(System.in);
		String a,b;
		System.out.println("Enter First Number :");
		a=KB.nextLine();
		System.out.println("Enter Second Number :");
		b=KB.nextLine();
		BigInteger A=new BigInteger(a);
		BigInteger B=new BigInteger(b);
		BigInteger Sum=A.add(B);
		BigInteger Multiplied=A.multiply(B);
		BigInteger Remain=A.remainder(B);
		System.out.println("Sum Of the two Numbers is :"+Sum);
		System.out.println("Multiplication of the two Numbers is :"+Multiplied);
		System.out.println("Remainder when "+A+"is divided by "+B+" :"+Remain);
	}
}输出结果
Enter First Number : 142536141253654546456787823232356421653594544646585265116519 Enter Second Number : 556554655656654655556 Sum Of the two Numbers is :142536141253654546456787823232356421654151099302241919772075 Multiplication of the two Numbers is :79329153014055994331638907597080521393268861920828184819191877862617726150729564 Remainder when 142536141253654546456787823232356421653594544646585265116519is divided by 556554655656654655556 :79576899974494740771
众所周知,
 java中的字符串本质上也是动态的,在上面的程序中我们实际要做的是首先以String格式输入数字,然后通过将String作为参数将String转换为BigInteger格式。在以下声明中。
BigIntegerObjectName=new BigInteger(String);
此外,还有一些默认的BigInteger声明,例如:
BigInteger.ZERO; //BigInteger常数等于0- BigInteger.ONE;//BigInteger常数等于1- BigInteger.TEN;//BigInteger常数等于1-0
BigInteger类中使用的方法:
| 方法 | 原始数据类型(int a,b,c) | BigInteger类(BigInteger A,B,C) | 
|---|---|---|
| 加成 | c = a + b | C = A.add(B) | 
| 乘法 | c = a * b | C = A。乘(B) | 
| 余 | c = a%b | C = A。余数(B) | 
| 减法 | c = ab | C = A。减(B) | 
要了解有关BigInteger类中可用方法的更多信息,请单击以下Javadoc链接:LINK