BigInteger类
# 35. BigInteger类
Biglnteger 类可以用于表示任意大小的整教。
如果要进行非常大的数的计算,可以用java.math包中的BigInteger类,特点如下:
- 可以表示任意大小的整数
- 是不可变的
- 可以用
new BigInteger(String)
来创建对象 - 可以用
add
、substr
、multiple
、divide
和remainder(取余)
方法来完成算数运算 - 用
compareTo
方法来比较大小
# 演示BigInteger的使用
import java.math.BigInteger;
public class BigIntegerDemo1 {
public static void main(String[] args) {
BigInteger a = new BigInteger("9223372036854775807"); //Long类型的最大整数
BigInteger b = new BigInteger("2");
BigInteger c = a.multiply(b);
System.out.println(c); //18446744073709551614
}
}
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 演示BigInteger的成员变量
BigInteger类中还有几个有用的成员变量
import java.math.BigInteger;
public class BigIntegerDemo2 {
public static void main(String[] args) {
BigInteger result = BigInteger.ZERO; //等价于 new BigInteger("0");
BigInteger result2 = BigInteger.ONE; //等价于 new BigInteger("1");
BigInteger resul3 = BigInteger.TEN; //等价于 new BigInteger("10");
System.out.println(result);
System.out.println(result2);
System.out.println(result3);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
# BigInteger的构造方法
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 到 (2^numBits^ - 1)(包括)范围内均匀分布的值。BigInteger(String val)
将 BigInteger 的十进制字符串表示形式转换为 BigInteger。BigInteger(String val, int radix)
将指定基数的 BigInteger 的字符串表示形式转换为 BigInteger。
# toString
我们之前打印过BigInteger,toString()
无参,其默认转为10进制值的字符串表示形式。
有个重载的方法 toString(int radix)
,此方法传递一个参数radix,radix意为基数,也就是进制中的基数,将所包装的数转为N进制值的字符串返回。
# 小结
本文相关代码已上传至:01.JavaSE/05.OOP/30.BigInteger · 小林/LearnJava - 码云 - 开源中国 (opens new window)
请读者务必根据自己动手敲一遍本文提及的代码
# 参考
《Java语言程序设计-基础篇》第10.9节
上次更新: 2024/2/5 20:01:21