最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

全球信息: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

}

构建这个类的时候也蛮困难的,因为是小白,很多地方特别是数组和String做了很多功课,最后才构建出这个类。

构建函数输入的是String字符串,然后借用count这个数组将字符串处理好后赋值给num实例变量。

然后在main函数就可以使用了:

String str="58287346328379183738273";BigLong b=new BigLong(str);BigLong d=new BigLong("3912834622973378193827382723819283298340");

关键词: