概述
以前没注意到,原来Java中有一个BigInteger类(大整数类),否则我会用它来测试自己写的一个大整数类(加减法)。
参考:
学以致用——Java源码——自定义40位长整数类及测试类(通过字符串解析构造、静态方法求和等)(Huge Integer Class)
https://blog.csdn.net/hpdlzu80100/article/details/85627856?ops_request_misc=%7B%22request%5Fid%22%3A%22158212625819725256756211%22%2C%22scm%22%3A%2220140713.130056874..%22%7D&request_id=158212625819725256756211&biz_id=0&utm_source=distribute.pc_search_result.none-task
不得不说,BigInteger类的功能十分强大,再大的数字也可以实现加减乘除运算。
代码如下:
import java.math.BigInteger;
public class BigIntegerTest {
public static void main(String[] args) {
BigInteger b1 = new BigInteger("19801987199319961999200320062050"); // 声明BigInteger对象
//long largeNumber = 123456789012345678901234567890L; //此整数已远超出long型的最大值
BigInteger b2 = new BigInteger("1997200420072017"); // 声明BigInteger对象
System.out.println("b1: " + b1 + ", b2:" + b2);
System.out.println("加法操作:" + b2.add(b1)); // 加法操作
System.out.println("减法操作:" + b2.subtract(b1)); // 减法操作
System.out.println("乘法操作:" + b2.multiply(b1)); // 乘法操作
System.out.println("除法操作:" + b2.divide(b1)); // 除法操作
System.out.println("最大数:" + b2.max(b1)); // 求出最大数
System.out.println("最小数:" + b2.min(b1)); // 求出最小数
BigInteger result[] = b1.divideAndRemainder(b2); // 求出余数的除法操作
System.out.println("商是:" + result[0] + ";余数是:" + result[1]);
System.out.println("等价性是:" + b1.equals(b2));
int flag = b1.compareTo(b2);
if (flag == -1)
System.out.println("比较操作: b1<b2");
else if (flag == 0)
System.out.println("比较操作: b1==b2");
else
System.out.println("比较操作: b1>b2");
}
}
运行结果:
b1: 19801987199319961999200320062050, b2:1997200420072017 加法操作:19801987199319963996400740134067 减法操作:-19801987199319960001999899990033 乘法操作:39548537152742531531320344595357095510908654850 除法操作:0 最大数:19801987199319961999200320062050 最小数:1997200420072017 商是:9914872338453605;余数是:581487806790765 等价性是:false 比较操作: b1>b2 |
最后
以上就是怕黑雨为你收集整理的Java核心技术——Java BigInteger类(大整数类)的全部内容,希望文章能够帮你解决Java核心技术——Java BigInteger类(大整数类)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复