Calculadora Bitwise
Realize operações bitwise AND, OR, XOR, NOT e de deslocamento em inteiros. Visualize os resultados em formatos binário, hexadecimal e decimal lado a lado.
0x0000003C · 0b111100
0x0000000D · 0b1101
60 & 13 = 12
A0000 0000 0000 0000 0000 0000 0011 1100
B0000 0000 0000 0000 0000 0000 0000 1101
=0000 0000 0000 0000 0000 0000 0000 1100
Decimal
12
Hexadecimal
0x0000000C
Binary (short)
0b1100
Bitwise Operation Truth Table
| A | B | A & B | A | B | A ^ B | ~A |
|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | 1 |
| 0 | 1 | 0 | 1 | 1 | 1 |
| 1 | 0 | 0 | 1 | 1 | 0 |
| 1 | 1 | 1 | 1 | 0 | 0 |
Como Usar Calculadora Bitwise
- 1Digite dois inteiros (A e B) em decimal, binário (prefixo 0b) ou hexadecimal (prefixo 0x).
- 2Selecione uma operação bitwise: AND, OR, XOR, NOT, deslocamento à esquerda ou deslocamento à direita.
- 3Visualize o resultado em representações binária, hexadecimal e decimal.
ZenovayAnalytics
Analytics feito para fundadores.
- Acompanhamento de visitantes em tempo real
- Privacidade em primeiro lugar, sem banner de cookies
- Configurado em dois minutos
Ferramentas Relacionadas
Formatador e Validador de JSON
Formate, valide e embeleze dados JSON com destaque de sintaxe e detecção de erros.Decodificador JWT
Decodifique e inspecione tokens JWT. Visualize cabeçalho, payload e verifique assinaturas.Codificar/Decodificar Base64
Codifique texto para Base64 ou decodifique Base64 de volta para texto. Suporta dados UTF-8 e binários.Encode/Decode de URL
Codifique ou decodifique componentes de URL. Trate caracteres especiais, strings de consulta e URLs completas.Perguntas Frequentes
O que são operadores bitwise?▾
Operadores bitwise funcionam com inteiros no nível binário (bit). AND (&): o bit de saída é 1 apenas se ambos os bits de entrada forem 1. OR (|): o bit de saída é 1 se qualquer bit de entrada for 1. XOR (^): o bit de saída é 1 se exatamente um bit de entrada for 1 (ou exclusivo). NOT (~): inverte cada bit (complemento de 1); em JavaScript, NOT usa inteiros assinados de 32 bits então ~5 = -6. Left shift (<<): desloca todos os bits para a esquerda por N lugares, equivalente a multiplicar por 2^N. Right shift (>>): desloca para a direita com extensão de sinal; unsigned right shift (>>>): desloca para a direita e preenche com 0s.
O que é uma máscara de bits e como é usada?▾
Uma máscara de bits é um inteiro usado com operadores bitwise para definir, limpar ou testar bits específicos. Definir um bit: value | (1 << n) define o bit n como 1. Limpar um bit: value & ~(1 << n) limpa o bit n para 0. Alternar um bit: value ^ (1 << n) inverte o bit n. Testar um bit: (value >> n) & 1 retorna 1 se o bit n estiver definido. Usos práticos: permissões de arquivo Unix (chmod 755 = 111 101 101 binário), máscaras de sub-rede IP, flags de recursos embalados em um único inteiro, canais de cor RGB, bitmaps de estado do jogo, cabeçalhos de protocolo de rede.
Como o XOR funciona e para que é usado?▾
XOR (ou exclusivo) gera saída 1 quando os bits diferem. Propriedades-chave: A ^ A = 0, A ^ 0 = A, comutativa e associativa. Usos práticos: criptografia simples (XOR com uma chave para criptografar, XOR novamente para descriptografar — mesma operação). Encontrar o diferente: XOR todos os números para encontrar o único em uma matriz onde tudo mais aparece duas vezes. Trocar sem uma variável temporária: a ^= b; b ^= a; a ^= b. CRC (verificação de redundância cíclica) checksums para detecção de erros. Cálculo de bit de paridade.
Por que o JavaScript usa inteiros de 32 bits para operações bitwise?▾
Os números em JavaScript são floats IEEE 754 de 64 bits, mas operadores bitwise convertem operandos para inteiros assinados de 32 bits antes de operar. Isso significa: o valor máximo seguro para operações bitwise é 2^31 − 1 = 2.147.483.647. Números acima disso sobrecarregam ou produzem resultados inesperados. NOT (~) sempre retorna um resultado assinado de 32 bits — ~0 = -1, ~1 = -2. O deslocamento para a direita sem sinal (>>>) retorna um inteiro sem sinal de 32 bits. Para operações bitwise de 64 bits, use BigInt: 100n & 255n.
Quais são truques comuns de manipulação de bits?▾
Verifique se um número é par: n & 1 === 0. Verifique se é potência de 2: n > 0 && (n & (n-1)) === 0. Obtenha o bit definido mais baixo: n & -n. Limpe o bit definido mais baixo: n & (n-1). Conte bits definidos (popcount): while(n) { count += n & 1; n >>= 1; }. Troque nibbles em um byte: ((b & 0xF0) >> 4) | ((b & 0x0F) << 4). Divisão rápida pelo piso por potência de 2: n >> k é igual a Math.floor(n / 2^k). Multiplique por potência de 2: n << k é igual a n * 2^k.