Red de conocimientos sobre prescripción popular - Conocimiento de perdida de peso - En Java, la suma de dos enteros muy largos excede el rango de almacenamiento de long. ¿Cómo calcular su valor?

En Java, la suma de dos enteros muy largos excede el rango de almacenamiento de long. ¿Cómo calcular su valor?

Existe el uso de BigDecimal y también existe el método de suma que escribí para su referencia. Hay muchos métodos, que se pueden dividir en varios segmentos int y luego sumarlos.

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 ");

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);

}

}