java - numeros - ¿Cómo puedo hacer operaciones en grandes cantidades que no se pueden almacenar en una variable?
suma de n numeros en java (5)
En Java, me gustaría poder realizar operaciones en enteros realmente grandes (que no se pueden almacenar en mucho tiempo), ¿cómo puedo hacer eso?
¿Cuál es la mejor manera de lidiar con esto, con buenas actuaciones? ¿Debo crear mi propio tipo de datos que contenga varias variables largas?
Ejemplo:
public class MyBigInteger{
private long firstPart;
private long secondPart;
...
}
public MyBigInteger add(long a, long b){
MyBigInteger res;
// WHAT CAN I DO HERE, I guess I could do something with the >> << operators, but I''ve never used them!
return res;
}
¡Gracias!
¿Ha considerado la clase de biblioteca estándar java.math.BigInteger , que admite enteros de precisión arbitraria?
Debería consultar la clase de BigInteger java. Hace exactamente lo que necesita.
Si los números van a ser realmente largos, sugiero que los almacene en una lista vinculada (cada nodo en un dígito) o en un Archivo (en este caso, habrá retrasos de acceso) y luego haga una adición dígito por dígito que solíamos hacer de forma manual en nuestro segundo grado.
import java.math.BigInteger;
public class BigIntegerTest {
public BigInteger add(long a, long b){
BigInteger big1 = new BigInteger(Long.toString(a));
BigInteger big2 = new BigInteger(Long.toString(b));
return big1.add(big2);
}
/**
* @param args
*/
public static void main(String[] args) {
System.out.println(new BigIntegerTest().add(22342342424323423L, 234234234234234234L));
}
}