⚙️ 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 |