Entero grande de Java

Entero Grande De Java



Java ofrece una clase especial BigInteger para administrar números extremadamente grandes que superan los números de 64 bits. El tamaño de los valores enteros que esta clase puede manejar está simplemente limitado por la memoria asignada de la JVM. La clase BigInteger, que hereda un Number.implementa la interfaz Comparable. Proporciona equivalentes para cada operador entero primitivo de Java, así como para cada método del módulo java.lang.math. El valor almacenado del objeto BigInteger no se puede modificar debido a la inmutabilidad de la clase BigInteger.

Ejemplo 1:

El siguiente programa proporciona una forma de crear BigInteger en Java y aplica la operación aritmética al valor de BigInteger proporcionado.








Hemos importado la clase BigInteger del paquete matemático de Java dentro del programa. Después de eso, declaramos los objetos BigInteger 'bigInt1' y 'bigInt2' en el método main() de la clase java 'BigIntegerExample'. Luego, inicializamos los objetos BigInteger con los valores numéricos grandes dentro de la clase BigInteger. Hemos creado otro objeto de la clase BigInteger para realizar la operación aritmética en el valor entero grande especificado. Los objetos se declaran como 'Multiplicación' para multiplicar el valor BinInteger y 'División' para dividir el valor BigInteger.



Luego, asignamos 'bigInt1' junto con el método multiplicar () de BigInteger al objeto 'multiplicar', que toma la entrada 'bigInt2'. Además, hemos llamado al método division(), que toma el parámetro 'bigInt2' que se dividirá con 'bigInt1' e imprime los resultados después de la ejecución.



Los resultados de la operación de multiplicación y división en los valores BigInteger se muestran en la siguiente imagen de salida. Así es como se configura BigInteger en java y se usa para varias operaciones.





Ejemplo 2:

El cálculo factorial es una buena ilustración de un número entero que obtiene entradas muy grandes. BigInteger también se puede utilizar para obtener el factorial para valores enteros más grandes.




Hemos creado la función “factorial” de la clase BigInteger, donde se pasa como argumento el objeto “num” de tipo int para devolver el factorial del valor “Num”. Dentro de la función “factorial”, hemos declarado un objeto BigInteger “max_fict” donde se especifica el valor BigInteger “2”. Después de eso, implementamos el bucle for, que iterará y luego multiplicará el valor 'max_fict' con 4, 5 y hasta el valor n cuando se invoque el método de multiplicación (). El multiplicar () en sí mismo se llama otro método 'valueOf', donde se proporciona el objeto 'i' del bucle for. La declaración de devolución proporcionará el factorial más grande. A continuación, hemos establecido el método main() del programa. Inicializamos el objeto “Num” con el valor e imprimimos el factorial del “Num” del método factorial().

El valor factorial del número '40' proporciona el valor BigInteger de la siguiente manera:

Ejemplo 3:

La función bitCount() de la clase BigInteger cuenta los bits. El método bitCount() proporciona el número de bits que están en forma de dos complementos en este BigInteger y son diferentes del bit de signo. Este método devuelve los bits establecidos cuando el valor de BigInteger es positivo. Por otro lado, si BigInteger se especifica con un valor negativo, este método devuelve la cantidad de bits de reinicio.


Hemos declarado dos variables, 'b1' y 'b2' de tipo clase 'BigInteger'. También hemos definido dos variables más, 'entero1' y 'entero2', tipo primitivo int. Después de la declaración, inicializamos 'b1' con el valor BigInteger positivo y 'b2' con el valor BigInteger negativo. A continuación, hemos asignado el 'entero1' y el 'entero2' con el método bitCount() a las variables BigInteger 'b1' y 'b2'. Los bits contados se obtendrán del método bitCount() para los valores BigInteger especificados.

El BigInteger positivo proporciona los bits '2', y el valor negativo de BigInteger genera el valor del bit '1'.

Ejemplo 4:

El valor absoluto de los datos numéricos de gran tamaño en BigInteger se puede determinar utilizando el método abs() de la clase BigInteger. El método abs() devuelve el valor absoluto de BigInteger.


Tenemos una clase BigInteger, de la que hemos declarado cuatro variables: 'big1', 'big2', 'big3' y 'big4'. Las variables “big1” y “big2” se especifican con valores positivos y negativos, respectivamente. Después de eso, invocamos el método abs() con 'big1' y 'big2' en las variables 'big3' y 'big4'. Tenga en cuenta que el método abs() no toma ningún valor de entrada, pero se llama con las variables 'big1' y 'big2'. El método abs() obtiene el valor absoluto de estas variables BigInteger y los resultados se imprimirán en el momento de la compilación.

El valor absoluto de los valores 432 positivos y 432 negativos es el mismo porque el método abs() siempre devuelve el valor absoluto positivo.

Ejemplo 5:

La comparación de los valores BigInteger se puede lograr usando el método BigInteger compareTo(). El BigInteger se compara con el BigInteger que se ingresa como un parámetro dentro del método compareTo(). El valor de retorno del método compareTo() se basa en los valores de BigInteger. Cuando la comparación del valor de BigInteger es igual, se devuelve cero. De lo contrario, '1' y '-1' se devuelven con la condición de que el valor de BigInteger sea mayor o menor que el valor de BigInteger pasado como argumento.


Tenemos los objetos 'MyBigInt1' y 'MyBigtInt2' declaración de la clase 'BigInteger'. Luego, estos objetos se especifican con los mismos valores de BigInteger. Después de eso, creamos otro objeto, 'comparevalue' donde el objeto 'MyBigInt1' se llama con el método compareTo(), y el objeto 'MyBigInt2' se pasa como argumento para comparar con el objeto 'MyBigInt2'. A continuación, tenemos una instrucción if-else en la que comprobamos si los resultados del método compareTo() son iguales al valor '0' o no.

Debido a que ambos objetos BigInteger tienen los mismos valores, los resultados de compareTo() devuelven cero, como se muestra en la imagen a continuación.

Ejemplo 6:

El método BigInteger flipBit(index) también se puede usar para voltear en una ubicación de bit específica dentro de un BigInteger. Este método evalúa (bigInt ^ (1<


Hemos definido dos variables BigInteger, 'B_val1' y 'B_val2'. La variable “B_val1” se inicializa con la clase BigInteger, donde se especifica el valor. Luego, hemos configurado la variable 'B_val2' con el método flipBit(), donde la operación flipBit se realiza en la variable 'B_value' con el valor de índice '2'.

La posición de índice del valor BigInteger '9' se invierte con el índice '2', lo que genera el valor '13' en la salida.

Conclusión

La clase BigInteger es muy cómoda de usar y se usa con frecuencia en la programación competitiva debido a su amplia biblioteca de métodos. BigInteger se utiliza para el cálculo de números muy largos que van más allá de la capacidad de todos los tipos de datos primitivos actualmente accesibles. Proporciona varios métodos para operaciones aritméticas modulares. Primero creamos BigInteger y luego cubrimos algunos de sus métodos.