Complemento para dois

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa
Ambox rewrite.svg
Esta página precisa ser reciclada de acordo com o livro de estilo.
Sinta-se livre para editá-la para que esta possa atingir um nível de qualidade superior.
Editor: considere colocar o mês e o ano da marcação. Isso pode ser feito automaticamente, substituindo esta predefinição por {{subst:rec}}
Question book.svg
Esta página ou secção não cita nenhuma fonte ou referência, o que compromete sua credibilidade (desde janeiro de 2011).
Por favor, melhore este artigo providenciando fontes fiáveis e independentes, inserindo-as no corpo do texto por meio de notas de rodapé. Encontre fontes: Googlenotícias, livros, acadêmicoYahoo!Bing. Veja como referenciar e citar as fontes.

Em computação, complemento para dois ou complemento de dois é um tipo de representação binária de números com sinal amplamente usada nas arquiteturas dos dispositivos computacionais modernos.

O dígito mais significativo (MSB) é o que informa o sinal do número. Se este dígito for 0 o número é positivo, e se for 1 é negativo.

Os números são escritos da seguinte forma:

  • Positivos: Sua magnitude é representada na sua forma binária direta, e um bit de sinal 0 é colocado na frente do MSB.
    • (bit 0) + o número em binário.
    • Exemplos: 0001 (+1), 0100 (+4) e 0111 (+7)
  • Negativos: Sua magnitude é representada na forma de complemento a 2, e um bit de sinal é colocado na frente do MSB.
    • Pegamos o número em binário e "invertemos" (0100 invertendo têm-se 1011) e
    • Somamos um ao valor "invertido" (1011 + 0001 = 1100).

Desta maneira, só existe uma representação para o número zero (0000...0).

As vantagens do uso do complemento de 2 é que existe somente um zero e que as regras para soma e subtração são as mesmas. A desvantagem é o fato de ser um código assimétrico, porque o número de representações negativas é maior que o número de representações positivas. Por exemplo, com 8 bits em complemento para 2 podemos representar os números decimais entre -128 e +127.

Algoritmos para obtenção do complemento de 2[editar | editar código-fonte]

Para se obter o complemento de 2 de um número binário, a regra geral nos diz para subtrair cada algarismo de 2. Por causa da particularidade dos números binários (subtrair de 1 cada bit é o mesmo que inverter todos os bits - e é o mesmo que tirar o complemento de 1), para obter o C2 de um número obtemos primeiro o complemento de um (invertendo os bits) e depois somamos 1 ao resultado, já que (2-N) = (1-N)+1

Existe outra maneira de usar o complemento a dois. Vamos supor que temos um número binário 101110, começando da direita para esquerda você vai repetindo o número (para a esquerda) até encontrar o número 1, depois que encontrá-lo repita-o e passe a inverter o restante. Continuado o nosso exemplo:

Número: 101110
  • Passo 1 - 0 (o primeiro número da direita)
  • Passo 2 - 10 (Aqui encontramos o primeiro 1, então vamos repetí-lo e continuar)
  • Passo 3 - 010 (Invertemos o número 1 da terceira posição da direita para a esquerda)
  • Passo 4 - 0010
  • Passo 5 - 10010
  • Passo 6 - 010010 (o resultado do complemento)
Outro número: 1101
  • Passo 1 - 1 (O primeiro número da direita para a esquerda é o 1, então repetimos e passamos a inverter o restante)
  • Passo 2 - 11
  • Passo 3 - 011
  • Passo 4 - 0011

Exemplos[editar | editar código-fonte]

Tabela exemplo para números binários (4 digitos) representados em complemento de 2:

Decimal Binário s/ sinal Binário (Compl. 2)
-8 - 1000
-7 - 1001
-6 - 1010
-5 - 1011
-4 - 1100
-3 - 1101
-2 - 1110
-1 - 1111
0 000 0000
1 001 0001
2 010 0010
3 011 0011
4 100 0100
5 101 0101
6 110 0110
7 111 0111

Note que com 4 dígitos (bits) não é possível representar o número 8 positivo, porém o número 8 negativo (-8) permanece. Assim conseguimos representar 16 valores com 4 bits (2^4)

Ver também[editar | editar código-fonte]

Ícone de esboço Este artigo sobre computação é um esboço. Você pode ajudar a Wikipédia expandindo-o.