El método log2(BigInteger x, modo RoundingMode) de la clase BigIntegerMath de Guava devuelve el logaritmo en base 2 de x, redondeado según el modo de redondeo especificado.
Sintaxis:
public static int log2(BigInteger x, RoundingMode mode)
Parámetros: Este método toma los siguientes parámetros:
- x : El número BigInteger cuyo registro se va a encontrar.
- mode : El modo de redondeo para calcular el logaritmo de 2.
Valor devuelto: este método devuelve el logaritmo en base 2 de x, redondeado según el modo de redondeo especificado.
Excepciones: este método arroja las siguientes excepciones:
- IllegalArgumentException: si x <= 0.
- ArithmeticException: si el modo es RoundingMode.UNNECESSARY y x no es una potencia de 2.
Modo de redondeo de enumeración
Constante de enumeración | Descripción |
---|---|
TECHO | Modo de redondeo para redondear hacia el infinito positivo. |
ABAJO | Modo de redondeo para redondear hacia cero. |
PISO | Modo de redondeo para redondear hacia el infinito negativo. |
HALF_DOWN | Modo de redondeo para redondear hacia el «vecino más cercano» a menos que ambos vecinos sean equidistantes, en cuyo caso se redondea hacia abajo. |
HALF_EVEN | Modo de redondeo para redondear hacia el «vecino más cercano» a menos que ambos vecinos sean equidistantes, en cuyo caso, redondear hacia el vecino par. |
HALF_UP | Modo de redondeo para redondear hacia el «vecino más cercano» a menos que ambos vecinos sean equidistantes, en cuyo caso se redondea hacia arriba. |
INNECESARIO | Modo de redondeo para afirmar que la operación solicitada tiene un resultado exacto, por lo que no es necesario redondear. |
ARRIBA | Modo de redondeo para redondear desde cero. |
Los siguientes ejemplos ilustran el método BigIntegerMath.log2():
Ejemplo 1:
// Java code to show implementation of // log2(BigInteger x, RoundingMode mode) method // of Guava's BigIntegerMath class import java.math.*; import com.google.common.math.BigIntegerMath; class GFG { // Driver code public static void main(String args[]) { BigInteger a1 = BigInteger.valueOf(1024); // Using log2(BigInteger x, RoundingMode mode) // method of Guava's BigIntegerMath class // The RoundingMode HALF_EVEN rounds towards // the "nearest neighbor" unless both neighbors // are equidistant, in which case, round towards // the even neighbor. System.out.println("Log base 2 of " + a1 + " with rounding mode HALF_EVEN = " + BigIntegerMath .log2(a1, RoundingMode.HALF_EVEN)); BigInteger a2 = BigInteger.valueOf(15); // Using log2(BigInteger x, RoundingMode mode) // method of Guava's BigIntegerMath class // The RoundingMode HALF_DOWN rounds towards // "nearest neighbor" unless both neighbors // are equidistant, in which case round down. System.out.println("Log base 2 of " + a2 + " with rounding mode HALF_DOWN = " + BigIntegerMath .log10(a2, RoundingMode.HALF_DOWN)); } }
Producción:
Log base 2 of 1024 with rounding mode HALF_EVEN = 10 Log base 2 of 15 with rounding mode HALF_DOWN = 1
Ejemplo 2: Para mostrar IllegalArgumentException
// Java code to show implementation of // log2(BigInteger x, RoundingMode mode) method // of Guava's BigIntegerMath class import java.math.*; import com.google.common.math.BigIntegerMath; class GFG { // Driver code public static void main(String args[]) { try { BigInteger a1 = BigInteger.valueOf(-5); // Using log2(BigInteger x, RoundingMode mode) // method of Guava's BigIntegerMath class // The RoundingMode HALF_EVEN rounds towards // the "nearest neighbor" unless both neighbors // are equidistant, in which case, round towards // the even neighbor. // This should throw "IllegalArgumentException" // as a1 <= 0 System.out.println("Log base 2 of " + a1 + " with rounding mode HALF_EVEN = " + BigIntegerMath .log2(a1, RoundingMode.HALF_EVEN)); } catch (Exception e) { System.out.println("Exception: " + e); } } }
Producción:
Exception: java.lang.IllegalArgumentException: x (-5) must be > 0
Publicación traducida automáticamente
Artículo escrito por Sahil_Bansall y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA