常见对象(BigInteger的概述详解 新手教程)
需要导包,import java.util.BigInteger
BigInteger,为什么要说这个?
我们从他字面意思就知道Big(大),Integer(int),大的Int类型
这就说明是Integer的升级版,那Integer表示的数有多大呢
class test{
public static void main(String[] args){
System.out.println(Integer.MAX_VALUE);
//输出结果:2147483647
//这个就是Integer所能表示的最大数据
//如果输出的数超过这个值会怎么样?
Integer i = new Integer(2147483647);
System.out.println(i);
//输出结果为:2147483647
Integer ii = new Integer(2147483648);
System.out.println(ii);
//这个就会报错,显示NumberFormatException
}
}
所以,Intefer还是不够大,因此就需要更大的BigInteger来进行运算数据
BigInteger:可以让超过Integer范围的数据进行运算
构造方法:
BigInteger(byte[] val)
将包含 BigInteger 的二进制补码表示形式的 byte 数组转换为BigInteger。
BigInteger(int signum, byte[] magnitude)
将 BigInteger 的符号-数量表示形式转换为 BigInteger。
BigInteger(int bitLength, int certainty, Random rnd)
构造一个随机生成的正 BigInteger,它可能是一个具有指定 bitLength 的素数。
BigInteger(int numBits, Random rnd)
构造一个随机生成的 BigInteger,它是在 0 到 (2numBits - 1)(包括)范围内均匀分布的值。
BigInteger(String val)
将 BigInteger 的十进制字符串表示形式转换为 BigInteger。
BigInteger(String val, int radix)
将指定基数的 BigInteger 的字符串表示形式转换为 BigInteger。
其中重要的就是:
BigInteger(String val)
将 BigInteger 的十进制字符串表示形式转换为 BigInteger。
import java.math.BigInteger;
class test{
public static void main(String[] args){
BigInteger bi = new BigInteger("2147483648");
System.out.println("bi:"+bi);
//如果打印的是地址值,就证明没有重写,如果不是就说明重写了构造方法
//输出结果为:bi:2147483648
//证明重写了
}
}
BigInteger的加,减,乘,除方法
- public BigInteger add(BigInteger val):加
- public BigInteger subtract(BigInteger val):减
- public BigInteger multiply(BigInteger val):乘
- public BigInteger divide(BigInteger val):除
- public BigInteger[] divideAndRemainder(BigInteger val):返回商和余数的数组
import java.util.BigInteger;
class test{
public static void main(String[] args){
BigInteger bi1 = new BigInteger("10");
BigInteger bi2 = new BigInteger("5");
//public BigInteger add(BigInteger val)
//返回其值为 (this + val) 的 BigInteger。
//加法
System.out.println("add:"+bi1.add(bi2));
//输出结果为:add:15
//public BigInteger subtract(BigInteger val):减
//返回其值为 (this - val) 的 BigInteger
//减法
System.out.println("subtract:"+bi1.subtract(bi2));
//输出结果为:subtract:5
// public BigInteger multiply(BigInteger val):乘
//返回其值为 (this * val) 的 BigInteger
//乘法
System.out.println("multiply:"+bi1.multiply(bi2));
//输出结果为:multiply:50
//public BigInteger divide(BigInteger val):除
//返回其值为 (this / val) 的 BigInteger
//除法
System.out.println("divide:"+bi1.divide(bi2));
//输出结果为:divide:2
//public BigInteger[] divideAndRemainder(BigInteger val):
//返回商和余数的数组,返回的是数组,所以要找个数组接收
//返回包含 (this / val) 后跟 (this % val) 的两个 BigInteger 的数组
//两个 BigInteger 的数组:商 (this / val) 是初始元素,余数 (this % val) 是最终元素。
BigInteger[] big = bi1.divideAndRemainder(bi2);
System.out.println("商:"+big[0]);
System.out.println("余数:"+big[1]);
//第一个输出结果为:商:2
//第二个输出结果为:余数:0
}
}