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
共有 0 条评论