Realize a operação indicada e enumere quantos módulos somadores completos ou subtratores completos, são necessários para realizar a operação. Efetue em binário as operações, usando a aritmética do complemento de 2 :
Passo 1
O enunciado pede que eu calcule a operação
em binário usando a aritmética do complemento de 2 e que eu enumere quantos módulos somadores completos ou subtratores completos são necessários para realizar a operação.
Informações dadas: e
são números hexadecimais de dois dígitos (logo podemos tratá‑los como palavras de 8 bits). A operação é a soma de
com o negativo de
, isto é,
.
Informações dadas:
Passo 2
Converter os valores hexadecimais para binário (8 bits):
Logo
Logo
Passo 3
Explicar como obter
em complemento de 2 (aula rápida):
- Para representar o negativo de um número em complemento de 2, você inverte todos os bits (complemento de 1) e soma
. - Isso cria a representação de
tal que (mod ), onde é o número de bits (aqui ).
Aplicando ao nosso
:
- Inversão dos bits:
- Somar
:
Portanto a representação em complemento de 2 de
é
Observação numérica rápida:
;
e
, conferindo o resultado.
Passo 4
Agora somamos
com
em binário (adição em complemento de 2). Escrevendo os operandos:
Fazendo a adição bit a bit (mostro os passos de transporte/carry para você aprender a fazer na prova):
Somando do LSB para o MSB com os carries:
- bit0:
, carry - bit1:
, carry - bit2:
, carry - bit3:
, carry - bit4:
, carry - bit5:
, carry - bit6:
, carry - bit7:
, carry de saída
O resultado de 8 bits (ignorando o carry de saída na aritmética de complemento de 2) é
Verificação rápida: em hexadecimal isso é
e em decimal é
. Numérico:
,
;
. Em interpretação com sinal (8 bits), o resultado é
, e não houve overflow de sinal (soma de um positivo com um negativo não gera overflow de sinal).
Passo 5
Quantos módulos somadores completos (full adders) ou subtratores completos são necessários?
Explicação didática:
- Cada bit de um somador ripple-carry de
bits é implementado por um somador completo; logo um somador de bits usa somadores completos. - Existem duas formas práticas de implementar a operação:
- Fazer a negação de
separadamente (inverter e somar 1) usando um somador de 8 bits, e depois somar o resultado a com outro somador de 8 bits. Isso usa somadores completos no total. - Implementar diretamente a subtração
usando um único somador de 8 bits que recebe e os bits de passados por XOR com um sinal de subtração (ou seja, alimentar ao somador) e com carry‑in = 1. Assim você faz numa única operação de 8 bits. Nesse caso usa‑se somente somadores completos (mais algumas portas XOR para inverter os bits quando necessário).
- Fazer a negação de
- Se você preferir pensar em subtratores completos, um subtrator de 8 bits também pode ser construído com
blocos do tipo “full subtractor” equivalentes; então a operação poderia ser feita com subtratores completos (um por bit) se implementar subtração direta.
Conclusão prática: o número mínimo de módulos do tipo “somador completo” necessários é
(usando um único somador de 8 bits que faça a subtração via complemento de 2). Se você fizer a negação e depois a soma em duas etapas, serão
somadores completos.