Guayaba de Java | método log2 (int x, modo RoundingMode) de IntMath

El método log2(int x, RoundingMode mode) de IntMath de Guava acepta dos parámetros y calcula el valor logarítmico de base 2 del primer parámetro redondeado según el modo de redondeo especificado por el segundo parámetro.

Sintaxis:

public static int log2(int x, RoundingMode mode)

Parámetros: el método toma 2 parámetros, donde x es un número entero y el modo es un modo de redondeo especificado.

Valor devuelto: este método devuelve el logaritmo en base 2 de x, redondeado según el modo de redondeo especificado.

Excepciones:

  • IllegalArgumentException: si x <= 0.
  • ArithmeticException: si el modo es RoundingMode.UNNECESSARY y x no es una potencia de dos.

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 la implementación del método log2() de Guava IntMath:

Ejemplo 1 :

// Java code to show implementation of
// log2(int x, RoundingMode mode) method
// of Guava's IntMath class
import java.math.RoundingMode;
import com.google.common.math.IntMath;
  
class GFG {
  
    // Driver code
    public static void main(String args[])
    {
        int a1 = 1542;
  
        // Using log2(int x, RoundingMode mode)
        // method of Guava's IntMath 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(IntMath.log2(a1, RoundingMode.HALF_EVEN));
  
        int a2 = 451;
  
        // Using log2(int x, RoundingMode mode)
        // method of Guava's IntMath class
        // The RoundingMode HALF_DOWN rounds towards
        // "nearest neighbor" unless both neighbors
        // are equidistant, in which case round down.
        System.out.println(IntMath.log2(a2, RoundingMode.HALF_DOWN));
    }
}
Producción:

11
9

Ejemplo 2:

// Java code to show implementation of
// log2(int x, RoundingMode mode) method
// of Guava's IntMath class
import java.math.RoundingMode;
import com.google.common.math.IntMath;
  
class GFG {
  
    static int findlog2(int x, RoundingMode mode)
    {
        try {
            // Using log2(int x, RoundingMode mode)
            // method of Guava's IntMath 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 x <= 0
            int ans = IntMath.log2(x, mode);
  
            // Return the answer
            return ans;
        }
        catch (Exception e) {
            System.out.println(e);
            return -1;
        }
    }
  
    // Driver code
    public static void main(String args[])
    {
        int x = -152;
  
        try {
  
            // Function calling
            findlog2(x, RoundingMode.HALF_EVEN);
        }
        catch (Exception e) {
            System.out.println(e);
        }
    }
}
Producción:

java.lang.IllegalArgumentException: x (-152) must be > 0

Referencia:
https://google.github.io/guava/releases/20.0/api/docs/com/google/common/math/IntMath.html#log2-int-java.math.RoundingMode-

Publicación traducida automáticamente

Artículo escrito por bansal_rtk_ y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *