BigInteger
简介
Java
中提供了对于大整数运算的相关类BigInteger
,BigInteger
的底层会将符号位和绝对值分别存储,绝对值会被分割为几份长度为 32 位的二进制值并存到一个 int 数组当中,比如:
27670116110564327424
⬇
[1, 10000000000000000000000000000000, 00000000000000000000000000000000]
⬇
[1, -2147483648, 0]
常用方法
方法名称 | 说明 |
---|---|
BigInteger(int num,Random rnd) | 获取随机大整数,取值范围$[0,2^{num}-1]$ |
BigInteger(String val) | 用字符串构造一个大整数 |
BigIntege(String val,int radix) | 用字符串构造指定进制的大整数 |
static BigInteger valueOf(long val) | 返回数值为 val 的大整数,对于 long 范围内数字推荐用此方法,是因为当生成的 val 在$[-16,16]$会有优化 |
BigInteger add(BigInteger val) | 返回大整数之和 |
BigInteger subtract(BigInteger val) | 返回大整数之差 |
BigInteger multiply(BigInteger val) | 返回大整数之积 |
BigInteger divide(BigInteger val) | 返回大整数之商 |
BigInteger mod(BigInteger val) | 返回大整数之余 |
BigInteger[] divideAndRemainder(BigInteger val) | 获取商和余数 |
BigInteger sqrt() | 返回大整数的平方根 |
BigInteger pow(int exponent) | 获取大整数的次幂 |
BigInteger max/min(BigInteger val) | 返回最大/最小值 |
int compareTo(BigInteger val) | 如果相等返回 0,大于返回正数,小于返回负数 |
boolean equals(Object x) | 比较是否相同 |
int intValue(BigInteger val) | 转为 int 类型,超出范围数据有误 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 AnA.!
评论