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