Para as operações abaixo, considerando números sinalizados com largura de 8 bits, converta os valores para binário antes de efetuar as operações. Verifique os resultados na base decimal.
112-111=

Passo 1

O enunciado pede para calcular 112-111 usando representação de números sinalizados com largura de 8 bits. Informações relevantes:
  • Os operandos são 112 e 111.
  • A largura é de 8 bits e a representação usada para números negativos é a representação em complemento de dois (dois’s complement).
    A tarefa: converter os valores para binário em 8 bits, efetuar a operação (fazendo a subtração usando complemento de dois) e verificar o resultado na base decimal.

Passo 2

Converter 112 para binário em 8 bits. Método: escrever 112 como soma de potências de dois.
As potências relevantes são 2^6=64, 2^5=32, 2^4=16. Soma: 64+32+16=112.
Portanto os bits correspondentes a 2^6,2^5,2^4 são 1, os demais 0. Em 8 bits:
112 \equiv 01110000_{(2)}

Passo 3

Converter 111 para binário em 8 bits. Decomposição: 111 = 64 + 32 + 8 + 4 + 2 + 1, ou seja 2^6,2^5,2^3,2^2,2^1,2^0 são 1.
Em 8 bits:
111 \equiv 01101111_{(2)}

Passo 4

Transformar a subtração em soma usando complemento de dois:
112 - 111 = 112 + (-111).
Para obter -111 em complemento de dois:
  1. inverter os bits de 01101111_{(2)} (representação de 111):
\text{inverso}(01101111_{(2)}) = 10010000_{(2)}
  1. somar 1:
10010000_{(2)} + 00000001_{(2)} = 10010001_{(2)}
Logo
-111 \equiv 10010001_{(2)} \quad(\text{em complemento de dois, 8 bits}).

Passo 5

Somar os binários de 112 e de -111:
\begin{array}{r} \;01110000\\\\ +\,10010001\\hline \;00000001\\ (\text{com carry de saída}) \end{array}í
Fazendo a adição bit a bit (mostrado resumidamente acima) obtém-se o resultado de 8 bits 00000001_{(2)}. O carry externo (nono bit) aparece, mas em complemento de dois com largura fixa de 8 bits esse carry é desprezado. Assim o resultado válido em 8 bits é:
00000001_{(2)}.

Passo 6

Interpretar o resultado em decimal: 00000001_{(2)} é o inteiro 1 em complemento de dois (mesmo para sinalizado, bit de sinal é 0).
Verificação direta em decimal:
112 - 111 = 1.
Como o resultado 1 está dentro do intervalo representável [-128,127] não houve overflow.

Passo 7

Resumo didático rápido (como lembrar na prova):
  • Para subtração em complemento de dois: converta o subtraendo para seu negativo invertendo os bits e somando 1; some ao minuendo; ignore qualquer carry que saia do oitavo bit.
  • Verifique overflow: se o resultado exceder [-128,127] ou se o carry interno indicar inconsistência entre carry-into-MSB e carry-out, há overflow. Aqui não ocorreu.

Resposta

1

Exercícios relacionados