El lenguaje Java se usa principalmente para escribirgrandes aplicaciones web empresariales. Sin embargo, también es aplicable a otras áreas temáticas, donde a menudo es necesario trabajar con números muy grandes. Aunque Java tiene tipos primitivos, hay situaciones en las que no son suficientes.
Se sabe que todos los primitivos tienen unouna característica desagradable es el desbordamiento de un tipo en el que la salida más allá de los valores permitidos conduce a cálculos incorrectos. Para esto, hay una clase especial llamada BigInteger. Java no sería Java si no tuviera una clase separada con funcionalidad para este caso. Vamos a considerarlo con más detalle.
Como ya sabías, la clase BigIntegershell para valores enteros grandes Para encapsular un número en un objeto de este tipo, puede usar una de las sobrecargas de sus constructores, o el método estático valueOf. El constructor puede tomar una cadena o una matriz de bytes como argumento. Para convertir tipos simples que representan enteros, use el método static valueOf en BigInteger Java.
Porque Java puede sobrecargarlos operadores están ausentes, para realizar operaciones matemáticas sobre los valores encapsulados en una clase dada, se proporciona un método correspondiente. Se discutirán más adelante.
Esta clase tiene en su arsenal muchosmétodos que le permiten manipular valores numéricos y realizar una variedad de operaciones matemáticas en ellos. A continuación hay una lista de estos métodos.
Analicemos los métodos que realizan operaciones aritméticas:
- add (valor) - agrega los valores del objeto actual, con el pasado como argumento;
- restar (restador) - Resta el restador del valor actual;
- multiplicar (valor) - realiza la multiplicación;
- divide (divisor) - divide el valor actual en un divisor;
- pow (int arg) - aumenta el valor del objeto invocado a una potencia de magnitud en arg;
- abs () - devuelve el valor absoluto del objeto llamado;
- negate () - devuelve un objeto BigInteger cuyo valor tiene el signo opuesto.
Examinemos un ejemplo simple de realizar una operación aritmética en dos valores encapsulados en un objeto:
- BigInteger val1, val2, sumando, dividiendo, oppositeSign;
- val1 = nuevo BigInteger ("5");
- val2 = BigInteger.valueOf (10);
- adding = val1.add (val2);
- dividing = val2.divide (val1);
- oppositeSign = val1.negate ();
Observe la forma de crear objetos. La variable val1 se inicializó utilizando el constructor que recibió la cadena, y almacena el valor 5. val2 es 10 como resultado del método estático valueOf. El valor de la variable de adición es el resultado de agregar las dos primeras variables y es 15. La variable que divide en consecuencia almacena el resultado de la resta. oppositeSign es igual al valor de val1 con el signo opuesto, es decir, -5.
Como puede ver, la clase BigInteger Java proporcionavarias herramientas para operaciones en números muy grandes. En este caso, los desbordamientos de tipo se eliminan, ya que la seguridad en Java tiene una de las más altas prioridades, naturalmente, sin comprometer la funcionalidad.
</ p>