Java LanguageBigInteger


Introducción

La clase BigInteger se usa para operaciones matemáticas que involucran enteros grandes con magnitudes demasiado grandes para tipos de datos primitivos. Por ejemplo, 100 factorial es 158 dígitos, mucho más grande de lo que puede representar un long . BigInteger proporciona análogos a todos los operadores enteros primitivos de Java y todos los métodos relevantes de java.lang.Math , así como algunas otras operaciones.

Sintaxis

  • BigInteger variable_name = new BigInteger ("12345678901234567890"); // un entero decimal como una cadena
  • BigInteger variable_name = new BigInteger ("1010101101010101010100110001100111010110001111100001011010010", 2) // un entero binario como una cadena
  • BigInteger variable_name = new BigInteger ("ab54a98ceb1f0800", 16) // un entero hexadecimal como una cadena
  • BigInteger variable_name = new BigInteger (64, new Random ()); // un generador de números pseudoaleatorios que suministra 64 bits para construir un entero
  • BigInteger variable_name = new BigInteger (new byte [] {0, -85, 84, -87, -116, -21, 31, 10, -46}); // firmó la representación complementaria de dos de un entero (big endian)
  • BigInteger variable_name = new BigInteger (1, nuevo byte [] {- ​​85, 84, -87, -116, -21, 31, 10, -46}); // representación de complemento de dos sin signo de un entero positivo (big endian)

Observaciones

BigInteger es inmutable. Por lo tanto no puedes cambiar su estado. Por ejemplo, lo siguiente no funcionará ya que la sum no se actualizará debido a la inmutabilidad.

BigInteger sum = BigInteger.ZERO;
for(int i = 1; i < 5000; i++) {
   sum.add(BigInteger.valueOf(i));  
}

Asigna el resultado a la variable sum para que funcione.

sum = sum.add(BigInteger.valueOf(i));

Java SE 8

La documentación oficial de BigInteger indica que las implementaciones de BigInteger deben admitir todos los enteros entre -2 2147483647 y 2 2147483647 (exclusivo). ¡Esto significa que BigInteger puede tener más de 2 mil millones de bits!

BigInteger Ejemplos relacionados