Executa as seguintes operações: (Valor 07 pontos)
Some os números 0101 e 1001 em BCD (Binary Coded Decimal), resultado em BCD
Some os números 0101 e 1001 em BCD (Binary Coded Decimal), resultado em BCD
Passo 1
O enunciado pede somar dois números em BCD e dar o resultado também em BCD. Informações fornecidas:
- Primeiro operando (em BCD de 4 bits):
. - Segundo operando (em BCD de 4 bits):
. - Objetivo: calcular a soma
e apresentar o resultado em BCD.
Passo 2
O que é BCD (rápido e na prática): cada grupo de 4 bits (um nibble) codifica um dígito decimal
a
. Assim:
-
representa o dígito decimal . -
representa o dígito decimal .
Regra importante para somar nibbles em BCD:
- Some os nibbles em binário normalmente.
- Se o resultado do nibble for maior que
(ou seja, maior que 9 decimal) ou se houver um carry out do nibble, deve-se adicionar (que é o decimal ) ao resultado do nibble para corrigir para BCD. Isso gera um carry para o nibble seguinte quando necessário.
Explicando por que se adiciona
: os códigos BCD válidos vão de
até
. Se a soma binária ultrapassa
, o valor binário não corresponde a um dígito decimal válido; somando
ajusta o resultado para o próximo dígito decimal correto e produz o carry apropriado.
Passo 3
Somando os dois nibbles em binário normalmente:
Portanto o resultado binário bruto do nibble é
.
Passo 4
Verificação da condição de correção BCD:
-
é maior que (já que e ). Logo, devemos aplicar a correção adicionando .
Aplicando a correção:
O resultado é
: um carry (1) para o nibble superior e o nibble inferior fica
.
Passo 5
Interpretando o resultado em BCD por dígitos:
- O carry para o nibble superior representa o dígito dezena
. - O nibble inferior corrigido é
, que representa o dígito unidade .
Portanto o resultado decimal é
(cheque rápido:
) e em BCD fica dois nibbles:
(dezena) seguido de
(unidade).