Ir para o conteúdo

Calculadora binária

Digite dois números binários e obtenha a soma, a diferença, o produto ou o quociente — com os vai-uns, os empréstimos, os produtos parciais e os passos da divisão longa dispostos coluna a coluna. Mude para o modo bit a bit para aplicar AND, OR, XOR, NOT, deslocamentos e rotações com 4 a 128 bits. Gratuito, sem cadastro, e nada sai do seu navegador.

Tipo de operação

Somente dígitos binários, com um sinal de menos opcional no início. Espaços e sublinhados são ignorados, então 1011 0110 funciona.

Resultado

1 0010

Binário

18

Decimal

12

Hexadecimal

22

Octal

5 bits

Tamanho

Desenvolvimento

Soma coluna a coluna com vai um
Linha43210
Vai um entrando11010
A01101
B00101
Soma10010

Como usar a calculadora binária

  1. 1. Escolha o tipo de operação. Aritmética soma, subtrai, multiplica ou divide. Bit a bit trabalha com os bits individuais de padrões de largura fixa.
  2. 2. Digite os números. Use apenas 0 e 1. Um sinal de menos no início, um prefixo 0b, espaços e sublinhados são todos aceitos, então 1011 0110 é lido como um único número.
  3. 3. Escolha uma largura (apenas bit a bit). NOT, deslocamentos e rotações não fazem sentido sem uma largura, então a calculadora pede uma: 4, 8, 16, 32, 64 ou 128 bits.
  4. 4. Leia o resultado e o desenvolvimento. A resposta aparece em binário, decimal, hexadecimal e octal, com o desenvolvimento em colunas embaixo.

Como funciona a soma binária

A soma binária segue as mesmas regras de coluna da soma decimal, mas uma coluna transborda em 2 em vez de 10. Some os dois bits de uma coluna mais qualquer vai um que chegou da direita. Se o total for 0 ou 1, escreva-o. Se for 2 ou 3, escreva o bit menos significativo (0 ou 1) e leve 1 para a coluna seguinte.

Os quatro casos de uma única coluna
Total da colunaBit escritoVai um
0 + 0 + 0 = 000
1 + 0 + 0 = 110
1 + 1 + 0 = 10 (2)01
1 + 1 + 1 = 11 (3)11

Tome 1101 (13) mais 101 (5). A calculadora completa os dois com zeros até cinco colunas e mostra o vai um chegando em cada uma — a linha de vai-uns, lida da esquerda para a direita, é 11010 — resultando em 10010, que é 18. A linha dos vai-uns é a parte que as pessoas perdem ao somar à mão.

Subtração, multiplicação e divisão

Subtração funciona ao contrário: quando uma coluna precisa de 1 − 1 − 1 ou 0 − 1, ela pega emprestado 1 da coluna à sua esquerda, que vale 2 aqui. 1000 − 0011 mostra um empréstimo passando por três colunas e termina em 0101 (8 − 3 = 5). Quando A é menor que B, a calculadora subtrai o menor do maior e dá ao resultado um sinal de menos.

Multiplicação é deslocar e somar. Cada 1 no multiplicador contribui com uma cópia do multiplicando deslocada para a esquerda pela posição desse bit, e um 0 não contribui com nada. Para 1011 × 101 (11 × 5), os 1s estão nas posições 0 e 2, então os produtos parciais são 1011 e 101100, e a soma deles é 110111 — 55.

Divisão é divisão longa com um passo de adivinhação muito fácil. Traga um bit do dividendo por vez; se o divisor cabe no que você tem, subtraia-o e escreva 1 no quociente, senão escreva 0. 1100100 ÷ 111 (100 ÷ 7) dá um quociente de 1110 (14) e um resto de 10 (2). Com operandos negativos, o quociente é truncado em direção a zero e o resto tem o sinal de A, como em C, Java e JavaScript.

Operações bit a bit em uma largura escolhida

Operações bit a bit com duas entradas
ABANDORXORNANDNORXNOR
00000111
01011100
10011100
11110001

Com 1100 e 1010 em 4 bits, AND dá 1000, OR dá 1110 e XOR dá 0110. NOT inverte cada bit dentro da largura, então o mesmo 1100 vira 0011 em 4 bits, mas 11110011 em 8 bits — por isso a largura importa.

Um deslocamento à esquerda por n move cada bit n posições para cima e preenche com zeros; os bits que caem no topo são perdidos, e a calculadora os lista. Um deslocamento lógico à direita preenche com zeros. Um deslocamento aritmético à direita copia o bit do topo, então um número negativo continua negativo: 10110110 deslocado 2 posições à direita é 00101101 no modo lógico, mas 11101101 (−19) no aritmético. Rotações devolvem ao outro lado os bits que caem de um dos lados, então nada se perde.

Sem estouro no modo aritmético

A aritmética aqui é exata em qualquer tamanho, então 11111111 + 1 é 100000000, não 0. O hardware real mantém um número fixo de bits e dá a volta. Para ver esse comportamento — e as faixas com sinal que o acompanham — use a Two's Complement Calculator.

Erros comuns

  • Esquecer o vai um da coluna mais à esquerda. Somar dois números de 8 bits pode produzir uma resposta de 9 bits. A calculadora mantém a coluna extra.
  • Confundir deslocamentos lógicos e aritméticos à direita. Eles concordam para números positivos e discordam para qualquer padrão cujo bit do topo seja 1. As linguagens diferem: em Java, >> é aritmético e >>> é lógico, enquanto em C o >> sobre um valor com sinal negativo fica a critério do compilador (aritmético nos mais comuns).
  • Ler um padrão de bits como número com sinal por acidente. 11110011 é 243 sem sinal e −13 em complemento de dois. Os resultados bit a bit mostram os dois, para você saber qual é o que quer.
  • Supor que NOT não depende da largura. Em um inteiro sem limite, NOT de 12 é −13. Dentro de uma largura fixa, é o padrão complementar, que é o que esta calculadora devolve.

Perguntas frequentes

Como somar números binários?
Trabalhe da coluna mais à direita para a esquerda, somando os dois bits e qualquer vai um. Um total de coluna 0 ou 1 é escrito como está; um total de 2 é escrito como 0 com vai um 1, e um total de 3 como 1 com vai um 1. Por exemplo, 1101 + 101 = 10010. A calculadora mostra o vai um entrando em cada coluna.
Como subtrair números binários?
Subtraia coluna a coluna, da direita. Quando uma coluna ficaria abaixo de zero, pegue 1 emprestado da coluna seguinte à esquerda, o que soma 2 à coluna atual. Se o segundo número for maior, subtraia na ordem inversa e coloque um sinal de menos no resultado. 1000 − 11 = 101 (8 − 3 = 5).
Qual é a diferença entre um deslocamento lógico e um aritmético à direita?
Um deslocamento lógico à direita preenche os bits do topo que ficaram vagos com zeros, então trata o padrão como número sem sinal. Um deslocamento aritmético à direita copia o bit do topo original, então um número negativo em complemento de dois continua negativo. Ambos dividem o valor por dois, mas só o deslocamento aritmético trata corretamente os valores negativos.
O que fazem AND, OR e XOR?
Eles comparam dois padrões de bits coluna por coluna. AND dá 1 apenas quando os dois bits são 1, OR dá 1 quando pelo menos um é 1, e XOR dá 1 quando exatamente um é 1. AND serve para mascarar bits, OR para ligar bits, e XOR para inverter bits ou comparar diferenças.
Esta calculadora lida com números binários negativos?
No modo aritmético, sim: coloque um sinal de menos na frente e as regras de sinal são aplicadas ao resultado exato. O modo bit a bit recebe padrões de bits simples, porque o padrão de um número negativo depende da largura. Use a Two's Complement Calculator para encontrar o padrão de um valor negativo.
Qual é o maior número binário que posso digitar?
Não há limite fixo, porque a aritmética usa inteiros de precisão arbitrária. O desenvolvimento em colunas é mostrado para operandos de até 64 bits; acima disso você ainda obtém o resultado exato, sem a tabela de passos. As operações bit a bit se limitam à largura escolhida, de até 128 bits.

Ferramentas relacionadas

Mais em Dados, marcação e código