【笔记】Java的大数计算

前言

Java的大数计算学习笔记

创建对象

<num>:任何类型的数字,如:Stringbyteshortintlong,提倡使用String类型的构造方法

创建大整型对象

1
BigInteger bigInteger = new BigInteger(<num>);

创建大浮点型对象

1
BigDecimal bigDecimal = new BigDecimal(<num>);

创建的同时进行进位转换

<num>:String类型的数字
<carry_old>:原数的进位数
<carry_new>:改变后的进位数

1
String bigInteger = new BigInteger(<num>, <carry_old>).toString(<carry_new>);

转换为其他基本类型的数字

1
bigInteger.byteValue()
1
bigInteger.shortValue()
1
bigInteger.intValue()
1
bigInteger.longValue()
1
bigInteger.floatValue()
1
bigInteger.doubleValue()

实例方法

返回当前大整数的绝对值

1
bigInteger.abs()

返回当前大整数的相反数

1
bigInteger.negate()

返回两个大整数的和

1
2
3
BigInteger bigInteger_1 = new BigInteger(<num>);
BigInteger bigInteger_2 = new BigInteger(<num>);
bigInteger_1.add(bigInteger_2);

返回两个大整数的差

1
2
3
BigInteger bigInteger_1 = new BigInteger(<num>);
BigInteger bigInteger_2 = new BigInteger(<num>);
bigInteger_1.subtract(bigInteger_2);

返回两个大整数的积

1
2
3
BigInteger bigInteger_1 = new BigInteger(<num>);
BigInteger bigInteger_2 = new BigInteger(<num>);
bigInteger_1.multiply(bigInteger_2);

返回两个大整数的商

1
2
3
BigInteger bigInteger_1 = new BigInteger(<num>);
BigInteger bigInteger_2 = new BigInteger(<num>);
bigInteger_1.divide(bigInteger_2);

BigDecimal除不尽时四舍五入

bigDecimal1:被除数
bigDecimal2:除数
<num>:保留小数点后的位数
BigDecimal.ROUND_UP:向上取整
BigDecimal.ROUND_DOWN:向下取整
BigDecimal.ROUND_HALF_UP:四舍五入

1
bigDecimal1.divide(bigDecimal2, <num>, BigDecimal.ROUND_HALF_UP);

返回当前大整数的乘方

<num>:指数

1
bigInteger.power(<num>);

返回当前大整数的模

<num>:除数

1
bigInteger.remainder(<num>)

返回大整数的最大公约数

1
2
3
BigInteger bigInteger_1 = new BigInteger(<num>);
BigInteger bigInteger_2 = new BigInteger(<num>);
bigInteger_1.gcd(bigInteger_2);

返回两个大整数的最大者

1
2
3
BigInteger bigInteger_1 = new BigInteger(<num>);
BigInteger bigInteger_2 = new BigInteger(<num>);
bigInteger_1.max(bigInteger_2);

返回两个大整数的最小者

1
2
3
BigInteger bigInteger_1 = new BigInteger(<num>);
BigInteger bigInteger_2 = new BigInteger(<num>);
bigInteger_1.min(bigInteger_2);

将当前大整数转换成十进制的字符串形式

1
bigInteger.toString();

完成

参考文献

博客园——小小范同学
CSDN——大前端码农的自我修养