Complemento de 2

Este post faz parte da série Eletrônica Digital

Para realizar as operações de subtração e adição, a maior parte dos computadores modernos utiliza o sistema de complemento de 2 para representar números negativos em binário.

Em binário essa representação difere da forma decimal e algumas operações precisam ser realizadas para se ter uma correspondência correta. Neste artigo entenderemos como representar números positivos e negativos em binário e o papel do complemento de 2 nisto.

Complemento de 2

Primeiramente, é preciso relembrar que na representação binária possuímos apenas dois dígitos para escrever números: 0 e 1. Assim, para diferenciar números positivos de negativos utilizamos o bit de sinal que será o bit mais significativo, ou seja, o MSB é aquele que irá informar o sinal do número:

  • Se este dígito for 0, o número é positivo
  • Se for 1, o número é negativo

Nesse contexto, os números são escritos da seguinte forma:

Números positivos

Seu valor é representado na forma binária direta, sendo acrescido um bit de sinal 0 na frente do MSB do número binário.

Instrução: 

(bit 0) + o número em binário.

Exemplos: 

complemento de 2

Números negativos

Seu valor é representado na forma de complemento a 2 e um bit de sinal 1 é colocado na frente do MSB.

O complemento a 2 é realizado da seguinte forma:

  1. Invertemos todos os bits do número binário, ou seja, tudo que é 0 vira 1 e vice-versa;
  2. Somamos um (0001) ao valor invertido.

Assim, é preciso entender dois pontos importantes:

  • Quando trabalhamos com complemento de 2 se o número binário tem dígito 1 no MSB significa que ele é negativo;
  • Para saber o valor que aquele número representa, precisamos realizar a operação de inverter e depois somar um.

Instrução: 

(bit 1 no MSB significa número negativo) e o número em binário precisa ser invertido e somado com 1 para determinar seu valor.

Exemplos:

complemento de 2

Para demonstrar o complemento de 2 na prática, na Tabela 1 temos a representação de todos os valores possíveis que podem ser escritos com 4 bits em binário, decimal, hexadecimal e complemento de 2.

BinárioDecimalHexadecimalComplemento de 2
0000000
0001111
0010222
0011333
0100444
0101555
0110666
0111777
100088-8
100199-7
101010A-6
101111B-5
110012C-4
110113D-3
111014E-2
111115F-1
Tabela 1 – Equivalências entre os sistemas de numeração binário, decimal, hexadecimal e complemento de 2.

Note que na representação em decimal os números vão de 0 a 15 enquanto que na representação em complemento de 2 vão de -8 a 7. 

Isso também pode ser observado quando estamos programando, na linguagem C temos os tipos uint_8t e int_8t, que tem o sentido de:

uint8_t: 

  • “u” é de unsigned, ou seja, sem sinal
  • “int” de inteiro
  • “8_t” quantidade de bits

int8_t:

  • a ausência do “u” indica tipo com sinal
  • “int” de inteiro
  • “8_t” quantidade de bits

Assim, quando escolhemos o tipo uint8_t podemos escrever valores de 0 a 255, já no tipo int8_t os valores vão de -128 a 127.

Referências

TOCCI, R.; WIDMER, N.; MOSS, G. Sistemas Digitais – Princípios e Aplicações. [S.l.]: Pearson Education Limited, 2011.

Saiba mais

Números binários: o que você precisa saber

Entendendo a Aritmética em Ponto Fixo

Bits em Linguagem C – Conceito e Aplicação

Eletrônica Digital

Operações com sistemas binários Álgebra Booleana
Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.
Comentários:
Notificações
Notificar
1 Comentário
recentes
antigos mais votados
Inline Feedbacks
View all comments
Luciano Lindoso
Luciano Lindoso
18/07/2024 07:06

Gosto demais de seus artigos. Peço desculpas a dar minha opinião.
Observei que na conversão de 1001b para complemento de dois foi feito:
1001b → inverte os bits, ou seja, 0110b, depois adiciona 1 = 0111b. O problema que o texto descreve que 0110b é -7 (sete negativo). Acredito que seja 7 positivo já que tem zero no MSb. Esse problema acontece nos outros exemplos.



Last edited 1 ano atrás by Luciano Lindoso
Home » Hardware » Sistemas Digitais » Complemento de 2

EM DESTAQUE

WEBINARS

VEJA TAMBÉM

JUNTE-SE HOJE À COMUNIDADE EMBARCADOS

Talvez você goste: