Complementos
O conceito de complemento é usado quando há necessidade de representação de números negativos no processamento digital. Consideram-se, por exemplo, números binários de 8 dígitos (ou bits) e apenas números inteiros.
Se não há necessidade de números negativos, os 8 bits podem representar, em binário, números de
Um método de indicar números negativos é considerar o bit mais significativo (mais à esquerda) como bit de sinal: 0 indica nulo ou positivo e 1, negativo.
Assim, no conjunto considerado de 8 bits, o maior positivo é 27 − 1 = 127. Com o zero, tem-se agora 127 + 1 = 128 para zero e positivos. Sobram portanto 128 para os negativos e o menor deles deve ser −128.
O complemento de um é uma das formas de se obter o correspondente negativo para um número na convenção de sinais mencionada. É obtido pela simples inversão de todos os dígitos no número, como se a função lógica NÃO fosse aplicada a cada. Exemplo:
Seja o número decimal 45. Em binário de 8 bits: 00101101.
Complemento de 1: 11010010.
Se o complemento indica o negativo do número, a soma de ambos deve ser nula: +45 + (−45) = 0.
Mas o resultado da soma 00101101 + 11010010 é 11111111.
Para obter zero, precisa-se somar 1 e desprezar o dígito "vai um " (Cout). O método foi usado em máquinas mais antigas.
O complemento de dois é obtido pela adição de 1 ao complemento de um. Exemplo para o número 45:
Em binário de 8 bits: 00101101.
Complemento de 1: 11010010.
Adicionando 1, tem-se o complemento de 2: 11010010 + 1 = 11010011.
Portanto, o complemento de dois é um método mais consistente e certamente o mais usado nas atuais máquinas digitais.
Obs: para o número zero, a operação com complemento de dois é (00000000) = 11111111 + 1 = 100000000. O resultado, como seria esperado, é também zero, de acordo com o comentário do parágrafo anterior.