Calculadora de complemento de dois

Esta calculadora de complemento de dois converte inteiros com sinal em binário e vice-versa. Exemplo: −42 é 1101 0110 em 8 bits.

Fonte: Hennessy/Patterson, Computer Organization and Design, Kap. „Signed and Unsigned Numbers“ (Zweierkomplement). Atualizado em: .

Inteiro com sinal. Separadores de milhar são aceitos (1.024).
Minha caixa de ferramentasSeus dados ficam salvos só neste navegador.

Resultado

Resultado
-42 = 1101 0110 (complemento de dois, 8 bits)
Todas as representações
GrandezaValor
Valor decimal-42
Complemento de dois1101 0110
Representação em complemento de um1101 0101
Hexadecimal0xD6
Faixa de valores-128 … 127
Valor absoluto em binário0010 1010
Passo a passo
  • Valor absoluto |-42| em binário (8 bits): 0010 1010.
  • Inverter todos os bits (complemento de um): 1101 0101.
  • Somar 1 (complemento de dois): 1101 0110.
O complemento de dois é a forma usual de guardar inteiros com sinal. Tem um só zero e cobre de −2^(n−1) a 2^(n−1) − 1.

Como o cálculo é feito

O complemento de dois é a representação padrão de inteiros negativos nos computadores. O bit mais significativo funciona como sinal, e soma e subtração usam o mesmo circuito, sem casos especiais.

Como se converte

Um número não negativo é escrito em binário como de costume e preenchido com zeros à esquerda. Para um número negativo: escrever o valor absoluto em binário, inverter todos os bits (complemento de um) e somar 1. No sentido inverso: se o bit mais significativo é 1, o valor é u − 2ⁿ, em que u é a sequência lida como inteiro sem sinal. Com n bits representam-se −2^(n−1) a 2^(n−1) − 1, ou seja, -128 a 127 com 8 bits.

Exemplo

−42 em 8 bits: o valor absoluto 42 é 0010 1010. Invertendo resulta 1101 0101 (complemento de um), somando 1 resulta 1101 0110, em hexadecimal D6. Conferência: 1101 0110 lido sem sinal é 214, e 214 − 256 = -42. A sequência 1000 0000 vale -128, o menor número de 8 bits; +128 já não cabe. Em 16 bits, −1 é FFFF em hexadecimal. Lido como complemento de um, 1101 0110 valeria -41.

Perguntas frequentes

Como converter um número negativo para complemento de dois?

Escreva o valor absoluto em binário, inverta todos os bits e some 1. Para −42 em 8 bits: 0010 1010 → 1101 0101 → 1101 0110.

Qual a diferença entre complemento de um e de dois?

O complemento de um só inverte os bits; o de dois soma 1 depois. Assim há um único zero e a aritmética funciona sem regras especiais.

Que faixa tem um byte em complemento de dois?

Com 8 bits, de -128 a 127, ou seja, 256 valores diferentes.

Fontes e base legal

Última atualização: · Princípios editoriais

Ferramentas relacionadas