👨🔬 Conceitos teóricos a parte, operadores bitwise, como o nome já faz referência, são operações efetuadas bit a bit em dados númericos e sempre baseadas em 32bits.
💡 Esse tipo de operador é útil em algoritmos de checksum que validam a integridade dos dados, máquinas de estados, criptografia, cálculos com cores, etc.
🗣 Falarei apenas dos Operadores Bitwise Shift <<, >> e >>>, que são utilizados para deslocar bits da esquerda pra direita.
Dica de pesquisa: Existem outros operadores bitwise.
👇 Considerando que 170 em 32 bits é 00000000000000000000000010101010, vejamos as seguintes definições:
Left Shift
<< ou Left Shift recebe x e y para x << y. Enquanto x é o número inteiro a ser processado, y é o número de bits a ser deslocado a partir da esquerda para direita.
170 << 3
(000)00000000000000000000010101010(***)
(***)00000000000000000000010101010(000)
R: 00000000000000000000010101010000
Exemplo retirado de Right Shift
>> ou Right Shift recebe x e y para x >> y. Enquanto x é o número inteiro a ser processado, y é o número de bits a ser deslocado a partir da direita para esquerda.
170 >> 3
(***)00000000000000000000000010101(010)
(000)00000000000000000000000010101(***)
R: 00000000000000000000000000010101
Exemplo retirado de Zero-Fill Right Shift
>>>ou Zero-Fill Right Shift é semelhante a >>, com a diferença que sempre irá popular 0 na definição esquerda do bit, >> pode ser 0 ou 1.
>>> recebe x e y para x >>> y. Enquanto x é o número inteiro a ser processado, y é o número de bits a ser deslocado a partir da direita para esquerda.
170 >>> 3
(***)00000000000000000000000010101(010)
(000)00000000000000000000000010101(***)
R: 00000000000000000000000000010101
Exemplo retirado de