HOWTO · Java

Java Right Shift - >>>

Este artigo apresenta como usar o operador >>> em Java.

Na linguagem Java, >>> é frequentemente conhecido como o operador bitshift direito sem sinal. Ao contrário dos operadores assinados, ele sempre permite que os lugares finais sejam preenchidos com valor zero. Vamos entender as seguintes operações com a ajuda de um exemplo.

Considere dois números que são a e b. O valor dos dois dados está abaixo.

a = 20
b = -20
a = 00000000000000000000000000010100
b = 11111111111111111111111111101100

O caso de uso do operador de deslocamento à direita bit a bit é a divisão de valor ou variável por 2.

Agora, vamos aplicar o operador de deslocamento para a direita sem sinal, ou seja, a>>>1. O operador desloca internamente todos os bits da variável para o lado direito. Ele preenche as posições finais com o valor zero.

Abaixo está o bloco de código para entender o mesmo.

public class RightShiftOperator {
  public static void main(String[] args) {
    System.out.println("The value of a and b before >>> operator");
    int x = 20;
    int y = -20;
    System.out.println(Integer.toBinaryString(x));
    System.out.println(Integer.toBinaryString(y));
    System.out.println("The value of a and b after applying >>> operator");
    System.out.println(Integer.toBinaryString(x >>> 1));
    System.out.println(Integer.toBinaryString(y >>> 1));
    int divX = x >>> 1;
    int divY = y >>> 1;
    System.out.println("Half the value of x: " + divX);
    System.out.println("Half the value of y: " + divY);
  }
}

No bloco de código acima, as variáveis ​​a e b são inicializadas com valores 20 e -20 cada. A função toBinaryString() da classe Integer é aplicada no método de fluxo de impressão. A função disso é converter a variável inteira para converter em String binária. O método está disponível na versão Java 1.2. A classe Integer tem funções para converter o valor int primário nos respectivos objetos de invólucro e, portanto, atua como um invólucro para valores primitivos. A entrada do método é uma variável int que deve ser convertida no valor String. O parâmetro que é passado na função é a variável junto com o operador. Por último, a variável com a operação realizada é impressa.

A saída do código usando o operador >>> é a seguinte.

The value of a and b before >>> operator
00000000000000000000000000010100
11111111111111111111111111101100
The value of a and b after applying >>> operator
00000000000000000000000000001010
01111111111111111111111111110110
Half the value of x: 10
Half the value of y: 2147483638