En Java, la suma de dos enteros muy largos excede el rango de almacenamiento de long. ¿Cómo calcular su valor?
Importar Java math . bigdecimal;
Clase pública Clase1 {
Public static void main(String[] args) {
clase 1 c = nueva clase 1();
BigDecimal bi 1 = nuevo BigDecimal(" 1234567890123456789043876945 ");
BigDecimal bi2 = nuevo BigDecimal(" 1234567890987654321234562232323232323 23 23 "); p >
BigDecimal bi3 = bi 1 . add(bi2);
system out .
system . out . println(bi3);
}
Cadena pública add(cadena a, cadena b){
if(a . length() gt ; b.length()){
return add(a.trim(), b. trim());
}de lo contrario{
return adds (b.trim(), a.trim());
}
}
Adición de cadena privada (cadena a, char Cadena b) {
int tmp = 0;
int t = 0;
char[]NC = nuevo char[a . p>for(int i=a.length()-1, j = I-(a . length()-b . length()); i gt = 0; i - ){
if (a.charAt(i)>47 amp ampa . charat(I) lt; 58){
t = tmp (int)a . p>}De lo contrario{
Lanzar una nueva excepción de formato (un carácter " el " (I 1) "no es un número);
}
if( j gt;=0){
if(b.charAt(j)>47 amp ampb . charat(j) lt;58){
t = t (int )b .charat(j)-48;
}De lo contrario{
Lanzar una nueva excepción de formato (b " the " (j 1) "El carácter no es un número);
}
}
tmp = t/10;
NC[I]=(char)(t 10 48);
j-;
}
if(tmp gt; 0){
Devuelve tmp nueva cadena (NC);
} De lo contrario {
Devuelve nueva cadena (NC
}
}
}
Clase); FormatException extiende RuntimeException {
>
Excepción de formato público (cadena cadena){
super(cadena);
}
}