Introdução à programação e aos algoritmos
1.5.3 Complemento a 1
Observe que, no caso de excesso–7, a representação do número é obtida pela soma do número que se quer representar com o valor 7. Desse modo, pensando apenas em decimais, temos –7 + 7 = 0, –6 + 7 = 1, –5 + 7 = 2, ... , 0 + 7 = 7, 1 + 7 = 8, 8 + 7 = 15.
1.5.3 COMPLEMENTO A 1
O nome complemento a 1 vem do fato de o número negativo ser calculado de acordo com quanto falta para cada dígito chegar a 1, ou seja, o complemento para 1. O complemento de um dígito 0 para 1 é 1 e o de 1 para 1 é 0. Nesta forma de codificação, os números positivos são codificados diretamente e os números negativos são obtidos em duas etapas: primeiro codificamos o número no seu valor absoluto e depois trocamos todos os números 1 por 0 e os números 0 por 1. Para obter o equivalente binário do número –10 10, procedemos assim:
Como se pode ver, o processo é bem simples, mas continua com o problema de termos duas representações para zero. Apesar disso, essa representação é melhor que a de sinal/valor, pois simplifica o cálculo com números negativos. Além disso, os circuitos necessários para fazer esses cálculos são relativamente simples.
Para 4 bits obtemos os números da Figura 1.7 usando a codificação de complemento a 1:
Figura 1.7 Números binários de 4 bits em complemento a 1. 1.5.4 COMPLEMENTO A 2