Método Java lang.Long.highestOneBit() en Java con ejemplos

java.lang.Long.highestOneBit() es un método incorporado en Java que primero convierte el número a binario, luego busca el primer bit establecido desde la izquierda, luego restablece el resto de los bits y luego devuelve el valor. En un lenguaje simple, si la expresión binaria de un número contiene un mínimo de un solo bit establecido, devuelve 2^ (última posición de bit establecida desde la derecha-1). Si la expresión binaria no contiene ningún bit establecido, devuelve 0.

Sintaxis:

public static long highestOneBit(long num)
Parameters:
num - the number passed 
Returns:
long value by only considering highest 1 bit in the argument.

Ejemplos:

Input : 9 
Output : 8
Explanation: Binary Representation = 1001
It considers highest bit(at 4th from right) and now
reset rest of the bits i.e. 1000
so result = 1000 i.e. 8 or in simple terms, the last set 
bit position from right is at position 4, hence 2^3=8

Input : 45
Output : 32

El siguiente programa ilustra la función java.lang.Long.highestOneBit():

Programa 1:

// Java program that demonstrates the use of
// Long.highestOneBit() function
  
// include lang package
import java.lang.*;
  
public class GFG {
  
    public static void main(String[] args)
    {
  
        long l = 9;
  
        // returns a long value with at most a
        // single one-bit, in the position
        // of the highest-order ("rightmost")
        // one-bit in the specified long value.
        System.out.println("highest one bit = " + Long.highestOneBit(l));
  
        l = 45;
        System.out.println("highest one bit = " + Long.highestOneBit(l));
    }
}

Producción:

highest one bit = 8
highest one bit = 32

Nota: el bit más alto del número negativo siempre será el mismo en todos los casos, por lo tanto, independientemente del número, la salida será la misma para cada número negativo.

Programa 2: El siguiente programa demuestra el uso de la función cuando se pasa un número negativo.

// java program that demonstrates the use of
// Long.highestOneBit() function
// negative number
  
// include lang package
import java.lang.*;
  
public class GFG {
  
    public static void main(String[] args)
    {
  
        long l = -15;
  
        // prints the binary of a negative expression
        System.out.println("Binary = " + Long.toBinaryString(l));
  
        // returns a long value with at
        // most a single one-bit, in the position
        // of the highest-order ("rightmost")
        // one-bit in the specified int value.
        System.out.println("Highest one bit = " + Long.highestOneBit(l));
    }
}

Producción:

Binary = 1111111111111111111111111111111111111111111111111111111111110001
Highest one bit = -9223372036854775808

Devuelve un mensaje de error cuando se pasa un valor de string decimal como argumento.
Programa 3: cuando se pasa un valor decimal en el argumento.

// java program that demonstrates the
// Long.highestOneBit() function
// decimal value in argument
  
// include lang package
import java.lang.*;
  
public class GFG {
  
    public static void main(String[] args)
    {
  
        System.out.println("highest one bit = " + Long.highestOneBit(12.34));
    }
}

Producción:

prog.java:13: error: incompatible types: possible lossy conversion from double to long
        System.out.println("highest one bit = " + Long.highestOneBit(12.34));

Programa 3: cuando se pasa un valor de string en el argumento.

// java program that demonstrates the
// Long.highestOneBit() function
// string value in argument
  
// include lang package
import java.lang.*;
  
public class GFG {
  
    public static void main(String[] args)
    {
  
        System.out.println("highest one bit = " + Long.highestOneBit("12"));
    }
}

Producción:

prog.java:13: error: incompatible types: String cannot be converted to long
        System.out.println("highest one bit = " + Long.highestOneBit("12"));

Publicación traducida automáticamente

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