UnitConv
Bit a bit

Calculadora bit a bit

AND, OR, XOR, NOT e deslocamentos de bits em inteiros de 32 bits, com visualização bit a bit

Operandos

Operando A
Operando B

Operação

Resultado

12 & 10
Decimal8
Sem sinal8
Hex0x00000008
Binário00000000000000000000000000001000

Padrão de 32 bits do resultado

0
31
0
30
0
29
0
28
0
27
0
26
0
25
0
24
0
23
0
22
0
21
0
20
0
19
0
18
0
17
0
16
0
15
0
14
0
13
0
12
0
11
0
10
0
9
0
8
0
7
0
6
0
5
0
4
1
3
0
2
0
1
0
0
MSB (bit 31)LSB (bit 0)

Os valores são tratados como inteiros de 32 bits. O decimal com sinal interpreta o bit mais alto como sinal (complemento de dois); o decimal sem sinal lê os 32 bits como uma magnitude positiva. O deslocamento à direita é lógico (zeros preenchem pela esquerda).

Sobre esta ferramenta

A calculadora bit a bit permite que desenvolvedores e estudantes de computação calculem AND, OR, XOR, NOT e deslocamentos à esquerda e à direita em dois inteiros. Insira cada operando em binário, decimal ou hexadecimal e o resultado aparece de uma vez nas três bases, junto com um mapa de 32 bits ao vivo que mostra exatamente quais bits mudam. Foi feita para depurar flags e máscaras de bits, trabalhar com permissões, empacotar dados e aprender como os computadores manipulam bits no nível mais baixo.

Como usar

  1. 1 Insira o Operando A e escolha sua base (binário, decimal ou hex).
  2. 2 Escolha uma operação: AND, OR, XOR, deslocamento à esquerda/direita ou o NOT unário.
  3. 3 Em operações de dois operandos, insira o Operando B; em um deslocamento, quantos bits deslocar.
  4. 4 Leia o resultado em decimal, sem sinal, hex e binário e inspecione os bits destacados.

Como funciona

As operações bit a bit atuam em cada um dos 32 bits de forma independente. AND coloca um bit de resultado em 1 apenas quando ambos os bits de entrada são 1, por isso é usado para mascarar (manter) bits selecionados. OR coloca um bit em 1 quando qualquer um dos bits de entrada é 1, por isso é usado para ligar flags. XOR coloca um bit em 1 somente quando os dois bits de entrada diferem, o que o torna perfeito para alternar bits e para somas de verificação simples. NOT é unário: inverte cada bit, transformando 0 em 1 e 1 em 0. Um deslocamento à esquerda (<<) move todos os bits para a extremidade mais significativa e preenche com zeros, multiplicando por dois a cada posição; um deslocamento lógico à direita (>>) move-os no sentido contrário e também preenche com zeros. Como os números negativos são armazenados em complemento de dois, os mesmos 32 bits podem ser lidos como um valor com sinal (o bit mais alto é o sinal) ou sem sinal, e por isso esta ferramenta mostra ambos. Por exemplo 12 AND 10 = 8, 12 OR 10 = 14, 12 XOR 10 = 6, 1 << 4 = 16, e NOT 0 dá todos uns, ou seja, -1 com sinal ou 4294967295 sem sinal.

Perguntas frequentes

Qual a diferença entre AND, OR e XOR?

AND mantém um bit apenas quando ambos os operandos o têm ativado, por isso serve para limpar ou testar bits com uma máscara. OR ativa um bit quando qualquer operando o tem, por isso serve para ligar bits. XOR ativa um bit somente quando exatamente um operando o tem, o que alterna bits e detecta diferenças.

Por que NOT 0 mostra -1 e também 4294967295?

NOT inverte os 32 bits, então 0 vira trinta e dois uns. Lido como inteiro com sinal em complemento de dois, esse padrão é -1; lido como inteiro sem sinal de 32 bits, é 4294967295. Ambos descrevem os mesmos bits.

O que o deslocamento à esquerda ou à direita realmente faz?

Um deslocamento à esquerda de n move cada bit n posições para a extremidade mais significativa e preenche com zeros, multiplicando por 2 elevado a n. Um deslocamento lógico à direita de n move-os no sentido contrário e preenche com zeros, dividindo por 2 elevado a n os valores não negativos.

Por que tudo é limitado a 32 bits?

Os operadores bit a bit do JavaScript e a maioria dos registradores inteiros da CPU trabalham com palavras de 32 bits, e esta ferramenta reflete isso. As quantidades de deslocamento são tomadas módulo 32 e os valores dão a volta dentro do intervalo de 32 bits, exatamente como em C, Java ou JavaScript.

Ferramentas e usos relacionados

Para converter um único valor entre binário, octal, decimal e hex, use o conversor de bases numéricas. Para códigos de caracteres veja o conversor ASCII, e para máscaras de cor o conversor de códigos de cor.