Ir para o conteúdo
Calculadoras online, rápidas e explicadas contato@nztbr.com

Finanças e Economia

Calculadora de Complemento de Dois

Use esta calculadora para obter a representação em complemento de dois de um inteiro decimal ou para inverter um padrão binário em uma largura definida. A ferramenta mostra os bits, o valor decimal com sinal e as etapas essenciais do cálculo.

Por Stéfano Barcellos, Formado em Direito Publicada em Atualizada em

Compartilhar

Salvar e imprimir

Exportar para Word

Escolha uma aba: converta um inteiro decimal para complemento de dois ou encontre o complemento de dois de uma sequência binária. A largura em bits é obrigatória, pois ela define o intervalo e o resultado.

O que esta calculadora de complemento de dois resolve

O complemento de dois é o método mais usado por computadores para armazenar números inteiros positivos e negativos em formato binário. Em vez de reservar um bit apenas para indicar o sinal e outro conjunto separado para o valor absoluto, a técnica usa todos os bits em uma única codificação. Isso simplifica a aritmética eletrônica: o mesmo circuito que soma números positivos também pode somar números negativos representados corretamente.

Esta calculadora atende a duas tarefas específicas. Na primeira aba, ela transforma um inteiro decimal, como -37, na sua codificação binária em complemento de dois com a quantidade de bits escolhida. Na segunda, ela recebe uma sequência de bits, inverte cada bit e acrescenta um, produzindo o complemento de dois daquela palavra. Também informa como a sequência original é interpretada como inteiro com sinal.

A largura da palavra é parte do cálculo, não apenas uma preferência de visualização. O padrão 1111 1111, por exemplo, vale -1 quando tem 8 bits em complemento de dois. Se os mesmos oito bits forem considerados sem sinal, correspondem a 255. Por isso, antes de converter ou comparar resultados, é necessário declarar quantos bits existem e se a interpretação é com sinal.

Como usar a ferramenta

Aba Decimal para binário

No campo Número inteiro decimal, informe um inteiro positivo, negativo ou zero. Não use casas decimais, separador de milhar, letras ou o prefixo “0b”. No campo Largura da palavra, escolha um valor de 2 a 64 bits. Depois, clique em Calcular. O resultado mostra a sequência binária agrupada em blocos de quatro quando possível, a leitura decimal com sinal e informações sobre o bit mais significativo.

O valor informado precisa caber no intervalo da largura selecionada. Para uma palavra de n bits, o menor inteiro possível é -2n-1 e o maior é 2n-1 - 1. Assim, em 8 bits, -128 e 127 são valores válidos; 128 e -129 não são. A calculadora avisa quando houver estouro, em vez de reduzir silenciosamente o número.

Aba Complementar bits

Digite uma sequência formada somente por 0 e 1 no campo Número binário. A quantidade de caracteres deve ser exatamente igual à largura indicada. Com 8 bits, por exemplo, escreva 00101101, incluindo zeros à esquerda. Ao calcular, a ferramenta inverte os bits e soma 1, descartando o transporte que eventualmente sair da largura definida.

Esse modo é útil para conferir o procedimento manual, construir o oposto aditivo de um padrão ou entender por que negar o menor valor de uma largura fixa gera o mesmo padrão. O botão Limpar apaga os campos e oculta o resultado. A alternância entre abas não altera os dados já digitados na outra aba.

Fórmula do complemento de dois e passo a passo

Para obter o complemento de dois de uma palavra binária de n bits, aplica-se a operação modular abaixo:

C2(x) = (2n - x) mod 2n

Na prática, há um caminho mais direto: mantenha a largura fixa, troque cada 0 por 1 e cada 1 por 0 e some 1 ao resultado. A inversão é chamada de complemento de um. A soma final converte esse complemento de um no complemento de dois. Por exemplo, para representar -18 em 8 bits, primeiro escreva o módulo: 18 = 00010010. Inverta: 11101101. Some 1: 11101110. Esse é o padrão de -18.

O bit à esquerda, chamado de bit mais significativo, determina a interpretação com sinal. Se ele é 0, a palavra representa diretamente um número não negativo. Se ele é 1, o valor é negativo. Para descobrir o módulo de uma palavra negativa, pode-se complementar novamente os bits; o complemento de dois de 11101110 é 00010010, isto é, 18. Logo, o valor com sinal é -18.

Formalmente, se o valor sem sinal da sequência é u, o valor com sinal s é calculado assim:

s = u, quando o bit mais significativo é 0; e s = u - 2n, quando o bit mais significativo é 1. Essa regra explica por que 11111111, cujo valor sem sinal é 255 em 8 bits, representa 255 - 256 = -1 com sinal.

Intervalos por largura de palavra

BitsMenor valor com sinalMaior valor com sinalQuantidade de padrões
4-8716
8-128127256
16-32.76832.76765.536
32-2.147.483.6482.147.483.6474.294.967.296
64-9.223.372.036.854.775.8089.223.372.036.854.775.80718.446.744.073.709.551.616

Observe a assimetria do intervalo: sempre há um valor negativo a mais. Em 8 bits, por exemplo, existe -128, mas não existe +128. A razão é que o padrão 10000000 é usado para -128. O zero é único e é codificado como todos os bits iguais a zero, eliminando o chamado “zero negativo” presente em alguns sistemas históricos de sinal e magnitude.

Exemplos resolvidos

Exemplo 1: converter 45 para 8 bits

O número 45 em binário é 00101101. Como é positivo e cabe em 8 bits, sua representação em complemento de dois é exatamente 00101101. O bit mais significativo é 0, portanto a leitura assinada permanece 45. Zeros à esquerda são necessários para manter a largura da palavra.

Exemplo 2: converter -45 para 8 bits

Comece com +45: 00101101. Inverta todos os bits: 11010010. Some 1: 11010011. Portanto, -45 = 11010011 em complemento de dois de 8 bits. Uma verificação é somar 00101101 e 11010011: o resultado é 1 00000000; o transporte externo é descartado, restando zero.

Exemplo 3: interpretar 10110110 em 8 bits

Como o primeiro bit é 1, o padrão representa um valor negativo. Invertendo 10110110, obtém-se 01001001; ao acrescentar 1, chega-se a 01001010, que vale 74 em decimal. Logo, a interpretação com sinal de 10110110 é -74. Pela fórmula alternativa, o valor sem sinal é 182 e 182 - 256 também resulta em -74.

Tabela de conversões úteis em 8 bits

Decimal com sinalBinário em complemento de doisLeitura sem sinal do mesmo padrão
-12810000000128
-6411000000192
-211111110254
-111111111255
0000000000
1000000011
630011111163
12701111111127

Base técnica aplicável

O complemento de dois é uma convenção de representação de inteiros binários adotada de modo praticamente universal em arquiteturas modernas. A especificação IEEE 754, embora seja voltada principalmente a números de ponto flutuante, prevê formatos de inteiros e operações que dependem de uma representação binária definida no ambiente de computação. Já o padrão da linguagem C descreve tipos inteiros, conversões e limites de implementação; versões recentes passaram a consolidar a expectativa de representação em complemento de dois para inteiros com sinal.

Em hardware, a vantagem central é a aritmética módulo 2n. Uma unidade lógica e aritmética pode efetuar uma subtração a - b ao somar a ao complemento de dois de b. O eventual transporte além do último bit não pertence à palavra e é descartado. Esse comportamento não deve ser confundido com ausência de erro: em programação, o estouro pode exigir tratamento conforme o tipo de dado, a linguagem e a finalidade do sistema.

Erros comuns ao calcular complemento de dois

  • Esquecer a largura: o complemento de dois de 5 em 4 bits é 1011, enquanto em 8 bits é 11111011.
  • Inverter os bits sem adicionar 1: isso produz complemento de um, não complemento de dois.
  • Eliminar zeros à esquerda: isso muda a largura e pode mudar o sinal e o valor interpretado.
  • Ler sempre como sem sinal: uma sequência iniciada por 1 tem significado diferente quando o formato é assinado.
  • Tentar representar valor fora do intervalo: 200 não cabe como inteiro com sinal em 8 bits.
  • Confundir estouro com transporte: o transporte final pode ser esperado; o estouro com sinal depende dos sinais dos operandos e do resultado.

Limites e interpretação do resultado

A calculadora trabalha com inteiros e palavras de 2 a 64 bits. Ela não converte frações, números de ponto flutuante, valores em hexadecimal com prefixos ou sequências com espaços. Para preservar precisão no navegador, os cálculos usam inteiros arbitrários do JavaScript e não o tipo numérico comum nas conversões internas.

O resultado descreve uma codificação matemática de largura fixa. Ele não informa, por si só, se um registrador, arquivo, protocolo, microcontrolador ou linguagem usa exatamente aquela largura, nem se os bytes devem ser lidos em determinada ordem. Ordem de bytes, extensão de sinal, conversões implícitas e regras de estouro são detalhes adicionais do sistema em que o dado será empregado.

Aviso: o resultado é uma estimativa informativa baseada na representação binária em complemento de dois e na largura de bits informada. Não substitui cálculo oficial nem orientação de profissional habilitado, e convenções coletivas, contratos e regras específicas podem alterar o valor final.

Base do conteúdo

Referências

  1. IEEE Standard for Floating-Point Arithmetic IEEE Standards Association 2019 Acessar
  2. ISO/IEC 9899:2024 — Programming Languages — C International Organization for Standardization 2024
  3. Computer Organization and Design: The Hardware/Software Interface Morgan Kaufmann 2020
  4. Computer Systems: A Programmer's Perspective Pearson 2016

Dúvidas comuns

Perguntas frequentes

Como calcular o complemento de dois manualmente?

Defina primeiro a quantidade de bits e escreva o valor positivo nessa largura. Para obter o negativo, inverta todos os bits e some 1. O transporte que ultrapassar a largura definida é descartado.

O que significa um binário começando com 1 em complemento de dois?

Em uma interpretação com sinal, o primeiro bit igual a 1 indica um valor negativo. Para descobrir seu módulo, calcule o complemento de dois da própria sequência e aplique o sinal negativo ao resultado.

Qual é o complemento de dois de 00000000?

O complemento de dois de zero é zero em qualquer largura fixa. Ao inverter todos os bits e somar 1, o resultado retorna a uma sequência de zeros após o descarte do transporte excedente.

Por que -128 não pode virar +128 em 8 bits?

O intervalo assinado de 8 bits vai de -128 a 127. O número positivo 128 exigiria um bit adicional, portanto a negação de 10000000 dentro de 8 bits resulta no mesmo padrão e caracteriza estouro matemático nessa largura.

Complemento de dois é igual a binário normal?

Para números não negativos que cabem na largura escolhida, a sequência é igual ao binário normal preenchido com zeros à esquerda. A diferença aparece nos números negativos e na forma de interpretar sequências cujo primeiro bit é 1.

Posso usar complemento de dois para números com vírgula?

Não diretamente nesta calculadora, que trabalha apenas com inteiros. Sistemas com casas decimais podem usar ponto fixo, escalas inteiras ou ponto flutuante, cada qual com convenções próprias.

O complemento de dois depende de 8, 16 ou 32 bits?

Sim. A largura altera os zeros ou uns à esquerda e define o intervalo permitido. Por exemplo, -1 é 11111111 em 8 bits e 1111111111111111 em 16 bits.

Quem escreveu

Stéfano Barcellos

Formado em Direito

Formado em Direito, escreve sobre cálculos aplicados ao dia a dia: prazos, jornada de trabalho, juros, impostos e conversões. Revisa cada calculadora do 11 Calculadoras antes da publicação.

  • Bacharel em Direito
  • Produção de conteúdo editorial desde 2016
  • Responsável pela revisão técnica das calculadoras publicadas

Continue calculando

Calculadoras relacionadas

Lista completa