Método Integer.numberOfLeadingZeros() en Java con ejemplo

java.lang.Integer.numberOfLeadingZeros() es el método que devuelve el número total de cero (0) bits que preceden al bit de orden más alto (es decir, el más a la izquierda o el «1» más significativo) de un bit en la representación binaria del complemento a dos. del valor entero especificado o podemos decir que es la función que convierte el valor int en binario, luego considera el bit más alto y devuelve no. de cero bits que lo preceden. Si el valor entero especificado no tiene bits de uno en su representación de complemento a dos, en otras palabras, si es igual a cero, devolverá 32.
Sintaxis: 

public static int numberOfLeadingZeros(int arg)

Parámetro: este método acepta un solo parámetro arg que es el valor entero.
Valor devuelto: este método devuelve el número de bits cero que preceden al bit establecido de orden más alto en la representación binaria del complemento a dos del valor int especificado, o 32 si el valor es igual a cero.
Explicación:  

  • Considere cualquier número entero arg = 19
  • Representación binaria = 0001 0011
  • Bit más alto (en 5) ie0001 0000
  • entonces resultado = 16-5 es decir 11

Los siguientes programas ilustran el método java.lang.Integer.numberOfLeadingZeros().
Programa 1: Para un número positivo.  

java

// Java program to illustrate the
// java.lang.Integer.numberOfLeadingZeros()
import java.lang.*;
 
public class LeadingZeros {
 
    public static void main(String[] args)
    {
 
        int a = 155;
        System.out.println("Integral Number = " + a);
 
        // Returns the number of zero bits preceding the highest-order
        // leftmost one-bit
        System.out.print("Number of Leading Zeros = ");
        System.out.println(Integer.numberOfLeadingZeros(a));
        a = 10;
        System.out.println("Integral Number = " + a);
 
        // Returns the number of zero bits preceding the highest-order
        // leftmost one-bit
        System.out.print("Number of Leading Zeros = ");
        System.out.println(Integer.numberOfLeadingZeros(a));
    }
}
Producción: 

Integral Number = 155
Number of Leading Zeros = 24
Integral Number = 10
Number of Leading Zeros = 28

 

Programa 2: Para un número negativo. 

java

// Java program to illustrate the
// java.lang.Integer.numberOfLeadingZeros()
import java.lang.*;
 
public class LeadingZeros {
 
    public static void main(String[] args)
    {
 
        int a = -15;
        System.out.println("Number = " + a);
 
        // Returns the number of zero bits preceding the highest-order
        // leftmost one-bit
        System.out.print("Number of Leading Zeros = ");
        System.out.println(Integer.numberOfLeadingZeros(a));
    }
}
Producción: 

Number = -15
Number of Leading Zeros = 0

 

Programa 3: Para un valor decimal. 
Nota: Devuelve un mensaje de error cuando se pasa un valor decimal como argumento.  

java

// Java program to illustrate the
// java.lang.Integer.numberOfLeadingZeros()
import java.lang.*;
 
public class LeadingZeros {
 
    public static void main(String[] args)
    {
 
        // Returns the number of zero bits preceding the highest-order
        // leftmost one-bit
        System.out.print("Number of Leading Zeros = ");
        System.out.println(Integer.numberOfLeadingZeros(16.32));
    }
}

Producción: 

prog.java:11: error: incompatible types: possible lossy conversion from double to int
        System.out.println(Integer.numberOfLeadingZeros(16.32));
                                                        ^
Note: Some messages have been simplified; recompile with 
-Xdiags:verbose to get full output
1 error

Programa 4: Para un valor de string se pasa en el argumento. 
Nota: devuelve un mensaje de error cuando se pasa una string como argumento.  

java

// Java program to illustrate the
// java.lang.Integer.numberOfLeadingZeros()
import java.lang.*;
 
public class LeadingZeros {
 
    public static void main(String[] args)
    {
 
        // returns the number of zero bits preceding the highest-order
        // leftmost one-bit
        System.out.print("Number of Leading Zeros = ");
        System.out.println(Integer.numberOfLeadingZeros("18"));
    }
}

Producción: 

prog.java:11: error: incompatible types: String cannot be converted to int
        System.out.println(Integer.numberOfLeadingZeros("18"));
                                                        ^
Note: Some messages have been simplified; recompile with 
-Xdiags:verbose to get full output
1 error 

Publicación traducida automáticamente

Artículo escrito por ankita_chowrasia 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 *