Java Right Shift - >>>
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
Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.
LinkedIn