⚙️ Operadores Bitwise em JavaScript

Em JavaScript, os operadores bitwise comparam os números na forma binária. Exemplo:

let a = 5   // binário: 0101
let b = 3   // binário: 0011

📌 Principais Operadores

1. AND bit a bit – &

Compara bit a bit e retorna 1 apenas se ambos os bits forem 1.

console.log(5 & 3) // 1
// 0101
// 0011
// 0001 = 1

2. OR bit a bit – |

Compara bit a bit e retorna 1 se pelo menos um dos bits for 1.

console.log(5 | 3) // 7
// 0101
// 0011
// 0111 = 7

3. XOR (OU exclusivo) – ^

Retorna 1 se os bits forem diferentes, e 0 se forem iguais.

console.log(5 ^ 3) // 6
// 0101
// 0011
// 0110 = 6

4. NOT (complemento) – ~

Inverte os bits do número (todos os 0 viram 1 e vice-versa). ⚠️ Em JavaScript, os números são representados em 32 bits com sinal (complemento de dois), por isso o resultado pode parecer estranho.

console.log(~5) // -6
// 00000000 00000000 00000000 00000101 (5)
// 11111111 11111111 11111111 11111010 = -6

5. Shift Left – <<

Desloca os bits para a esquerda e adiciona zeros à direita. Equivale a multiplicar por 2 a cada deslocamento.

console.log(5 << 1) // 10
// 0101 << 1 → 1010 = 10

6. Shift Right com sinal – >>

Desloca os bits para a direita mantendo o bit de sinal. Equivale a dividir por 2 a cada deslocamento.

console.log(5 >> 1) // 2
// 0101 >> 1 → 0010 = 2

7. Shift Right sem sinal – >>>

Desloca para a direita preenchendo com zeros, sem considerar o sinal.

console.log(-5 >>> 1) // 2147483645

⚡ Resumo da Tabela

Operador Nome Exemplo (a=5, b=3) Resultado
& AND bit a bit a & b 1
` ` OR bit a bit `a
^ XOR bit a bit a ^ b 6
~ NOT bit a bit ~a -6
<< Shift Left a << 1 10
>> Shift Right com sinal a >> 1 2
>>> Shift Right sem sinal a >>> 1 2147483645