在现实生活中,我们经常遇到数字,有时很小但有时很大,而在编程原始数据类型时,存在一个缺点,即它们只能处理最大到一个很小的唯一范围的数字,但要满足我们的要求,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