El desplazamiento de bits es un tipo de operación bit a bit que se realiza en todos los bits de un valor binario al mover los bits un número definido de lugares hacia la izquierda o hacia la derecha. Java tiene un solo operador de desplazamiento lógico a la izquierda (<< ). Cuando el valor 0001 (es decir, 1) se cambia a la izquierda, se convierte en 0010 (es decir, 2), que al cambiar de nuevo a la izquierda se convierte en 0100 o 4. Se aplica el mismo proceso para la operación de cambio a la derecha.
El método java.lang.Integer.rotateLeft() se usa para desplazar los bits de un valor Integer, representado en su forma complementaria de 2 binarios hacia la izquierda por un número específico de bits. (Los bits se desplazan hacia la izquierda o hacia un orden superior).
Sintaxis:
public static int rotateLeft(int value, int shifts)
Parámetros: El método toma dos parámetros:
- a : Es de tipo entero y se refiere al valor sobre el que se va a realizar la operación.
- turnos : Esto también es de tipo entero y se refiere a la distancia de rotación.
Valor devuelto: el método devuelve el valor obtenido al rotar la representación binaria en complemento a dos del valor int especificado hacia la izquierda el número especificado de bits de desplazamiento.
Ejemplos:
Input: 12 Output: 24 Explanation: Consider an integer a = 12 Binary Representation = 00001100 After 1 left shift it will become=00011000 So that is= 24
Los siguientes programas ilustran el método java.lang.Integer.rotateLeft().
Programa 1: Para un número positivo.
// Java program to illustrate the // Java.lang.Integer.rotateLeft() method import java.lang.*; public class Geeks { public static void main(String[] args) { int a = 2; int shifts = 0; while (shifts < 6) // It will return the value obtained by rotating left { a = Integer.rotateLeft(a, 2); System.out.println(a); shifts++; } } }
8 32 128 512 2048 8192
Programa 2: Para un número negativo.
// Java program to illustrate the // Java.lang.Integer.rotateLeft() method import java.lang.*; public class Geeks { public static void main(String[] args) { int a = -16; int shifts = 0; while (shifts < 2) // It will return the value obtained by rotating left { a = Integer.rotateLeft(a, shifts); System.out.println(a); shifts++; } } }
-16 -31
Programa 3: Para un valor decimal y string.
Nota: devuelve un mensaje de error cuando se pasa un valor decimal y una string como argumento
// Java program to illustrate the // Java.lang.Integer.rotateLeft() method import java.lang.*; public class Geeks { public static void main(String[] args) { int a = 15.71; int shifts = 0; while (shifts < 2) { a = Integer.rotateLeft(a, shifts); System.out.println(a); shifts++; } int b = "61"; int shifts2 = 0; while (shifts2 < 2) { b = Integer.rotateLeft(b, shifts2); System.out.println(b); shifts2++; } } }
prog.java:9: error: incompatible types: possible lossy conversion from double to int int a = 15.71; ^ prog.java:18: error: incompatible types: String cannot be converted to int int b = "61"; ^ 2 errors
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