Java之大数加减乘除——构建类
Posted mdddd-yep
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java之大数加减乘除——构建类相关的知识,希望对你有一定的参考价值。
超级大的数做加减乘除
java有八大数据类型:
1、byte(位),最大存储数据量是255;
2、short(短整数),最大数据存储量是65536;
3、int(整数),最大数据存储容量是2的32次方减1;
4、long(长整数),最大数据存储容量是2的64次方减1;
5、float(单精度浮动数),直接赋值时必须在数字后加上f或F;
6、double(双精度);
7、boolean(布尔类型);
8、char(字符)。
其中long类型所能存储的容量是2的64次方减1,那如果遇到一个比这个容量的数该怎么办?
我们可以利用数组来处理,因为以上的八种类型都没办法满足产生这个超级大的数,那我们就需要构建一个类,先使这个数能存在。
我这里是构建了一个BigLong类(如果不是为了实现这个算法,java其实存在这个超级大的数-Biginteger直接就可以实现加减乘除还有比较)
public class BigLong
int num[];
public BigLong(String str)
int n=0;
int[] count=new int[str.length()];
for(int i=0;i<str.length();i++)
String m=str.substring(i, i+1);
n=Integer.parseInt(m);
count[i]=n;
num=count;
构建这个类的时候也蛮困难的,因为是小白,很多地方特别是数组和String做了很多功课,最后才构建出这个类。
构建函数输入的是String字符串,然后借用count这个数组将字符串处理好后赋值给num实例变量。
然后在main函数就可以使用了:
String str="58287346328379183738273";
BigLong b=new BigLong(str);
BigLong d=new BigLong("3912834622973378193827382723819283298340");
以上是关于Java之大数加减乘除——构建类的主要内容,如果未能解决你的问题,请参考以下文章
JAVA大数类—基础操作(加减乘除取模四舍五入设置保留位数)
Java全栈JavaSE:19.常用类之大数运算日期和日历包装类