Calculadora binária
Faça cálculos com números binários: adição, subtração, multiplicação, divisão com resto, operações bit a bit AND, OR, XOR, NOT e deslocamentos de bits para a esquerda e para a direita. Digite dois valores binários e obtenha resultados exatos em binário, decimal, hexadecimal e octal, com o passo a passo da resolução.
Some, subtraia, multiplique e combine números binários
Aritmética binária – regras básicas
Onde:
- \(b_i\) — um único bit, que pode ser 0 ou 1
- \(i\) — a posição do bit, contada da direita para a esquerda a partir de 0
- \(2^i\) — o valor posicional (peso) daquela posição
Números binários usam apenas os dígitos 0 e 1, e cada posição vale uma potência de 2. A aritmética funciona exatamente como na base decimal, só que com as tabelas de colunas na base 2: na adição, \(0+0=0\), \(0+1=1\) e \(1+1=10_2\) (escreve-se 0 e vai um 1); na subtração, \(1-0=1\), \(1-1=0\) e \(0-1\) pede emprestado 1 da coluna seguinte (que vale 2) para escrever 1.
Já nas operações bit a bit, cada bit do resultado depende apenas dos dois bits correspondentes na mesma coluna, como se os números estivessem escritos um sobre o outro. Um deslocamento à esquerda de \(k\) posições multiplica por \(2^k\) dentro de uma palavra de largura fixa, e um deslocamento aritmético à direita de \(k\) posições divide por \(2^k\), arredondando em direção a \(-\infty\).
Calculadora binária – exemplo de cálculo
Exemplo: some os números binários A = 1011 e B = 0110 (os valores padrão da calculadora).
Primeiro, leia os dois números em decimal usando os pesos \(2^3, 2^2, 2^1, 2^0\):
\[ 1011_2 = 8 + 0 + 2 + 1 = 11_{10}, \qquad 0110_2 = 0 + 4 + 2 + 0 = 6_{10} \]
Agora some coluna por coluna da direita para a esquerda, transportando um 1 sempre que uma coluna somar 2 ou mais:
\[ 1011_2 + 0110_2 = 10001_2 \]
Confira em decimal: \(11 + 6 = 17\) e, de fato, \(10001_2 = 16 + 1 = 17\).
Resultado: 10001 em binário, 17 em decimal, 0x11 em hexadecimal e 0o21 em octal.
Como usar a calculadora
- Escolha a Operação no menu suspenso: adição, subtração, multiplicação, divisão com resto, uma das operações bit a bit (AND, OR, XOR, NOT) ou um deslocamento de bits (A << B, A >> B).
- Digite o Primeiro número (A) usando apenas os dígitos 0 e 1, com um sinal de menos opcional no início para valores negativos. Espaços dentro do número são ignorados.
- Digite o Segundo número (B) da mesma forma. Para NOT, apenas A é usado; nos deslocamentos, B é a quantidade de posições (também escrita em binário).
- Para NOT e os deslocamentos à esquerda e à direita, escolha a Largura em bits (8, 16, 32 ou 64 bits). O resultado dessas três operações é uma palavra em complemento de dois dessa largura.
- Leia os Resultados: a resposta em binário, mais os equivalents decimais, em hexadecimal e octal. A divisão também mostra o resto, e o painel Etapas do cálculo explica como a resposta foi construída.
O que significa aritmética binária
O sistema binário é o sistema numérico do hardware digital: um bit é 0 ou 1 porque um transistor está desligado ou ligado. Todo número binário é uma sequência de bits em que a posição \(i\), contada da direita, tem peso \(2^i\). Assim, 1011 não é "mil e onze", e sim \(1\cdot8 + 0\cdot4 + 1\cdot2 + 1\cdot1 = 11\). Depois que você aprende a ler os números desse jeito, as quatro operações básicas seguem o método escolar de sempre — só que o transporte acontece no 2, em vez do 10.
As operações bit a bit funcionam de forma diferente: elas tratam cada coluna de modo independente, o que as torna ideais para máscaras e flags. O AND de dois números mantém apenas os bits ativos em ambos; o OR mantém os bits ativos em pelo menos um deles; o XOR mantém os bits ativos em exatamente um. A tabela abaixo mostra a regra para uma única coluna:
| A | B | A AND B | A OR B | A XOR B |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 0 | 0 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 |
Os deslocamentos são o atalho binário para multiplicar e dividir por potências de dois. Deslocar 1011 duas posições à esquerda dá 101100, ou seja, \(11 \times 4 = 44\) — desde que nenhum bit caia da borda esquerda da palavra. É por isso que a largura em bits importa: dentro de um registrador de 32 bits, 1 deslocado 31 posições à esquerda ainda está tudo bem, mas deslocado 32 posições o bit some e o resultado zera. Cientistas da computação usam isso em tudo, de máscaras de imagem até subnetting de IP, onde uma calculadora de CIDR aplica a mesma lógica de máscara de bits a faixas de endereços.
Para converter um único número entre bases, em vez de calcular com dois deles, use o Conversor binário; o Conversor hexadecimal faz o mesmo com a notação hexadecimal que os programadores costumam preferir.
Premissas, limitações e dicas
- Até 1024 bits por entrada. Toda a aritmética usa cálculo inteiro exato, então até binários muito longos dão uma resposta exata — sem arredondamento e sem overflow nos modos de adição, subtração, multiplicação, divisão e operações bit a bit.
- NOT e deslocamentos têm largura fixa. Eles são avaliados dentro do tamanho de palavra que você escolher, exatamente como um registrador de CPU faria. Os resultados em hexadecimal e octal dessas operações são exibidos como padrões de bits sem sinal dessa largura, preenchidos com zeros à esquerda.
- A divisão trunca em direção a zero e informa o resto, seguindo o comportamento de
/e%em JavaScript, C e Java: A = B × Q + R com |R| < |B|, e R assume o sinal de A. - Tabelas de etapas (linhas de transporte, linhas de empréstimo, colunas bit a bit) são desenhadas para entradas de até 64 bits e, na multiplicação, para até 24 bits ativos em B; entradas mais longas ainda são calculadas exatamente, apenas sem a decomposição ilustrada.
- Zeros à esquerda não mudam nada em termos numéricos —
0110e110são ambos 6 —, mas NOT e os deslocamentos os usam para definir o formato da palavra, então informe a largura explicitamente se o preenchimento for importante para você. - Números negativos são aceitos somente na forma de sinal-magnitude (um menos no início); a calculadora os converte internamente e mostra o resultado com sinal de menos, não como um padrão em complemento de dois (exceto no modo NOT e de deslocamento).
Perguntas frequentes
Como converter um número binário em decimal manualmente?
Escreva as potências de 2 acima de cada bit, da direita para a esquerda: 1, 2, 4, 8, 16 e assim por diante, e some as potências que estiverem embaixo de um 1. Por exemplo, \(1101_2 = 8 + 4 + 0 + 1 = 13\). O bit mais à direita (posição 0) sempre tem peso \(2^0 = 1\), e cada passo à esquerda dobra o peso.
Como converter um número decimal em binário passo a passo?
Divida o número por 2 repetidamente, anotando o resto a cada passo, até chegar a 0. Depois leia os restos de baixo para cima. Para o 13: \(13 \div 2 = 6\) resto 1, \(6 \div 2 = 3\) resto 0, \(3 \div 2 = 1\) resto 1, \(1 \div 2 = 0\) resto 1 — a sequência de restos 1101 é a forma binária.
Por que 1 + 1 é igual a 10 em binário?
Porque não existe o dígito 2 em binário. Quando uma coluna soma 2, você escreve 0 nela e transporta 1 para a coluna seguinte à esquerda, exatamente como o transporte quando uma coluna decimal passa de 9. Assim, \(1 + 1 = 10_2\), que se lê "um zero" — o jeito binário de escrever dois (um grupo de dois, mais zero unidades).
Qual a diferença entre AND, OR e XOR?
Os três comparam os dois números coluna por coluna. AND dá 1 somente onde os dois operandos têm um 1 — útil para extrair ou mascarar bits. OR dá 1 onde pelo menos um operando tem um 1 — útil para ativar bits. XOR dá 1 onde exatamente um operando tem um 1 — útil para inverter bits, e o XOR de um número com ele mesmo é sempre 0.
Por que preciso escolher uma largura em bits para NOT e os deslocamentos?
NOT e os deslocamentos alteram a quantidade de bits do resultado, então a resposta depende do tamanho do recipiente, tal como acontece em um registrador de CPU. Dentro de uma palavra de 8 bits, NOT 0000 0101 inverte todos os bits, inclusive os zeros à esquerda, resultando em 1111 1010. Da mesma forma, um deslocamento à esquerda de k posições multiplica por \(2^k\) somente se nenhum bit cair da borda esquerda da palavra — caso contrário, o valor sofre wrap.
O que acontece com números negativos em binário?
Esta calculadora aceita entradas negativas escritas com um sinal de menos no início e calcula resultados com sinal exatos. Para as operações de largura fixa NOT e deslocamento, porém, os números negativos seguem a convenção de complemento de dois, em que \(-A\) é armazenado como \(2^w - A\) numa palavra de w bits, e NOT A equivale a \(-A - 1\). É por isso que NOT 0 em qualquer largura dá um resultado de −1.
Quais são os erros mais comuns ao fazer aritmética binária à mão?
Esquecer o transporte quando uma coluna soma 2, pedir emprestado 10 em vez de 2 na subtração e ler o resultado como se fossem dígitos decimais (1011 é onze, não mil e onze). Atenção também à direção do deslocamento: deslocar à esquerda multiplica por \(2^k\), enquanto deslocar à direita divide, descartando o resto — um deslocamento à direita de 1011 (11) por 1 dá 101 (5), e não 22.
A divisão binária produz um resultado fracionário?
Não — esta calculadora faz divisão inteira com resto, como os operadores / e % em JavaScript, C ou Java. O quociente trunca em direção a zero, e o resto satisfaz A = B × Q + R, assumindo o sinal do dividendo. A divisão por zero é rejeitada e exibe um erro, já que não tem quociente definido.