-
Acredito que eu tenho que converter 2 em binário => 0010 (acrescentei mais dois 00 á esquerda apenas)
para obter a complementação a 2 faço:
repito o número em binário da direita para a esquerda até encontrar o primeiro bit 1. Repetimos esse bit e o restante invertemos, ou seja 1110
Como a questão deseja a representação em 16 bits eu pego e completo o binário com numero um (até dar 16 algarismos) pois ele que representa o sinal negativo do -2: 1111111111111110
Peço que alguém que ver este comentário confirme o que estou dizendo (sim eu resolvi mas não tenho total certeza) :)
-
É exatamente isso Cleiton :)
Você fez pelo método mais rápido, sem precisar converter em Complemento de 1 (C1)
Como ficaria em cada representação...
0000000000000010 = 2 → na representação positiva em 16 bits
1111111111111101 = -2 → na representação em Complemento de 1 (C1) - inverte os valores da representação positiva
1111111111111110 = -2 → na representação em Complemento de 2 (C2) - soma-se o resultado de C1 com 1 em binário
-
O primeiro passo é representar o número dois em 16 bits. Dois, em binário, é 10, então basta “enchermos” de zeros a esquerda até completarmos 16 bits:
0000000000000010
Para fazer o complemento a dois, primeiro invertemos todos os bits:
1111111111111101
Por fim, somamos um ao resultado:
1111111111111110