O deslocamento de bits é um tipo de operação bit a bit que é executada em todos os bits de um valor binário, movendo os bits por um número definido de casas para a esquerda ou direita. Java tem um único operador lógico de deslocamento à esquerda (<<). Quando o valor 0001 (ou seja, 1) é deslocado para a esquerda, ele se torna 0010 (ou seja, 2) que ao deslocar novamente para a esquerda torna-se 0100 ou 4. O mesmo processo é aplicado para a operação de mudança para a direita.
O método java.lang.Integer.rotateLeft() é usado para deslocar os bits de um valor Integer, representado em sua forma complementar binária 2 para a esquerda por um número especificado de bits. (Os bits são deslocados para a esquerda ou ordem superior).

Sintaxe:

public static int rotateLeft(int value, int shifts)

Parâmetros: o método usa dois parâmetros:

  • a : É do tipo inteiro e se refere ao valor no qual a operação deve ser realizada.
  • deslocamentos : também é do tipo inteiro e se refere à distância de rotação.

Valor de retorno: O método retorna o valor obtido girando a representação binária de complemento de dois do valor int especificado para a esquerda pelo número especificado de bits de deslocamento.
Exemplos:

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

Os programas abaixo ilustram o método java.lang.Integer.rotateLeft().
Programa 1: Para um 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++;
        }
    }
}
Saída:
8
32
128
512
2048
8192

Programa 2: Para um 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++;
        }
    }
}
Saída:
-16
-31

Programa 3: Para um valor decimal e string.
Nota: Ele retorna uma mensagem de erro quando um valor decimal e uma string são passados ​​como um 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++;
        }
    }
}
Saída:
prog.java:9: erro: tipos incompatíveis: possível conversão com perdas de double para int
    int a = 15,71;
            ^
prog.java:18: erro: tipos incompatíveis: String não pode ser convertida para int
   int b = "61";
              ^
2 erros