Java – 常用API – BigInteger 大整数

简介

Java 提供的基础数值类型有 byte, short, int, long 这几种,但是都有数值限制,如果数值太大不能满足时,就需要用到大整数型了,它几乎是无限大的。

 

构造方法

 

BigInteger(int num, Random rnd)

获取随机大整数,范围:[0~2 的 num 次方 -1]

说明:调用此构造方法,会在 0~2 的 num 次方 -1

new BigInteger(4,new Random());  // => 会在 2 的 4 次方 -1 范围中随机生成一个整数。

 

 

BigInteger(String val)

以文本的方式表达一个大整数型。

new BigInteger(“9999999999”);  // => 大整型为 999999999

注意:文本中不允许是字母,也不允许是小数,否则会报错。

 

 

BigInteger(String val,int radix)

获取指定进制的大整数。

val: 以文本的方式表示一个整数

radix:指定进制

new BigInteger(“100”,2);  // => 100 的 2 进制,输出 => 4

注意:文本表达中必须符合进制数,否则会报错,输出时默认以 10 进制方式输出。

 

 

BigInteger.valueOf(long val) 静态方法

BigInteger.valueOf(long val) 方法可以静态生成一个 BigInteger 对象,但是有限制,它只能传入一个 long 型的数据,而long 型的数据最大值是 9223372036854775807,超过会报错

 

自动初始化

BigInteger.valueOf 预先对 -16 ~ 16 的数值做了优化,预创建了 BigInteger 对象,如果多次获取不会重新创建新的。

底层代码如下

for (int i = 1; i <= MAX_CONSTANT; i++) {
      int[] magnitude = new int[1];
      magnitude[0] = i;
      posConst[i] = new BigInteger(magnitude,  1);
      negConst[i] = new BigInteger(magnitude, -1);
}

MAX_CONSTANT = 16

 

 

BigInteger 计算方法

BigInteger add(BigInteger val)   => 相加

BigInteger subtract(BigInteger val)   => 相减

BigInteger multiply(BigInteger val)   => 相乘

BigInteger divide(BigInteger val)   => 相除

BigInteger[] divideAndRemainder(BigInteger val)   => 相除并得出商和余 => BigInteger[]   {商, 余}

boolean equals(Object x)  => 比较是否相同

BigInteger pow(int val)  => 次幂

BigInteger max/min(BigInteger val)  => 取最大、最小值

int intValue(BigInteger val)  => 转为 int 类整型,越出范围数据有误

long longValue(BigInteger val)  => 转为 long 类整型,越出范围数据有误

如果您喜欢本站,点击这儿不花一分钱捐赠本站

这些信息可能会帮助到你: 下载帮助 | 报毒说明 | 进站必看

修改版本安卓软件,加群提示为修改者自留,非本站信息,注意鉴别

THE END
分享
二维码
打赏
海报
Java – 常用API – BigInteger 大整数
Java 提供的基础数值类型有 byte, short, int, long 这几种,但是都有数值限制,如果数值太大不能满足时,就需要用到大整数型了,它几乎是无限大的。
<<上一篇
下一篇>>