永发信息网

在java中,两个超长整形数相加,已经超过了long 的存储范围,怎么计算它的值呢?

答案:4  悬赏:50  手机版
解决时间 2021-03-23 17:27
在java中,两个超长整形数相加,已经超过了long 的存储范围,怎么计算它的值呢?
最佳答案
有BigDecimal的用法,也有我写的一个相加的方法,参考下。方法很多的还可以把分成若干个int段分段计算后再加到一起。

import java.math.BigDecimal;
public class Class1 {
public static void main(String[] args) {
Class1 c=new Class1();
BigDecimal bi1=new BigDecimal("1234567890123456789043876945");
BigDecimal bi2=new BigDecimal("123456789098765432112345622232323232323");
BigDecimal bi3=bi1.add(bi2);
System.out.println(c.add("1234567890123456789043876945","123456781098765432112345622232323232323"));
System.out.println(bi3);
}
public String add(String a,String b){
if(a.length()>b.length()){
return adds(a.trim(),b.trim());
}else{
return adds(b.trim(),a.trim());
}
}
private String adds(String a,String b){
int tmp=0;
int t=0;
char[] nc=new char[a.length()];
for(int i=a.length()-1,j=i-(a.length()-b.length());i>=0;i--){
if(a.charAt(i)>47&&a.charAt(i)<58){
t=tmp+(int)a.charAt(i)-48;
}else{
throw new FormatException(a+"第"+(i+1)+"个字符不是数字");
}
if(j>=0){
if(b.charAt(j)>47&&b.charAt(j)<58){
t=t+(int)b.charAt(j)-48;
}else{
throw new FormatException(b+"第"+(j+1)+"个字符不是数字");
}
}
tmp=t/10;
nc[i]=(char)(t%10+48);
j--;
}
if(tmp>0){
return tmp+new String(nc);
}else{
return new String(nc);
}

}
}
class FormatException extends RuntimeException {
public FormatException(String string) {
super(string);
}
}
全部回答
用科学技算咯
计算的人只要知道最后的答案就行 所以你不一定要输出一个long型
比如你只要按位数4574617作为一个数组 然后与123.。。467这个数组逐个相加然后进位 最后得到一个int型数组 再把数组逐个输出就行了追问用数组的方式怎么解决?可以写个算法不?
BigInteger sum = new BigInteger("1234567890123456789043876945")
.add(new BigInteger("1234567890987654321123456"));
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
2016年婚纱摄影怎么计算税?以及可以抵扣的税
08纳尔多没人用吗
古代赞美松树的名句,苏轼的名句
用方法说明甲数除以乙数(0除外)等于甲数乘乙
我可能真的变老姑婆了???95年女生没有对象
look , tom(have)dinner.have用什么形式?
1999年和1995年的硬币值钱吗?
单选题人衰老的红细胞不具有下列哪些特征?A.
香坊区文化馆这个地址在什么地方,我要处理点
唐朝祭酒是什么官职
工程机械厦工956装载机多少钱
向前飞,不后悔!哪首歌里的?
诗经里带木字旁的诗句,诗经中带涵的句子
S7edge 用哪个软件下东西最好
请问靳彬彬用韩语怎么写
推荐资讯
小学数学论文,怎么写
女朋友想吃苹果?知道中国最好吃的苹果产地在
嘻哈妈咪滨江店地址在哪,我要去那里办事
您好您能再发一下逐月之月吗?非常感谢
侨兴大厦怎么去啊,有知道地址的么
北京同泰辉煌软件公司从事智慧养老信息化系统
7乘以11分之1加上11乘以15分之1加上15乘以19
赵亮在一部电影演的是一个乡村老师后来又有一
“当花瓶”是什么意思?
航天七院待遇
奥迪技术专业口号,企业口号标语大全
显卡底下黄色长条划了还能用吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?