29 Suma con números BCD
Suma con Números BCD: Explicación y Ejemplos Prácticos
En sistemas digitales como calculadoras, cajas registradoras o displays, los números suelen representarse en BCD (Binario Codificado en Decimal). Sin embargo, al realizar operaciones aritméticas como la suma, debemos considerar reglas especiales para evitar resultados inválidos.
En este post, veremos cómo sumar números BCD, qué hacer cuando aparecen números prohibidos (10 al 15 en BCD) y cómo corregirlos aplicando el ajuste con +6.
1. Suma BCD Básica
El BCD codifica cada dígito decimal en 4 bits (nibble) usando la ponderación 8421. Al sumar dos números BCD, seguimos estos pasos:
Suma binaria normal (bit a bit).
Verificar si el resultado es un número BCD válido (0-9).
Si el nibble es ≥10 (1010 a 1111 en binario), sumamos 6 (0110) para ajustarlo.
Ejemplo 1: Suma sin ajuste (80 + 10 en BCD)
80 en BCD:
1000 000010 en BCD:
0001 0000
Paso 1: Suma binaria
1000 0000 (80)
+ 0001 0000 (10)
= 1001 0000 (90) Resultado:
1001 0000→ 90 (BCD válido, no requiere ajuste).
2. Suma con Ajuste (+6) por Número Prohibido
Si al sumar dos nibbles BCD el resultado es ≥10, debemos sumar 6 (0110) para corregirlo.
Ejemplo 2: Suma con ajuste (90 + 10 en BCD)
90 en BCD:
1001 000010 en BCD:
0001 0000
Paso 1: Suma binaria
1001 0000 (90)
+ 0001 0000 (10)
= 1010 0000 (A0 en binario) Problema: El nibble
1010(10 en decimal) es inválido en BCD (solo se permiten 0-9).
Paso 2: Ajustar sumando 6 (0110) al nibble inválido
1010 0000 (A0)
+ 0110 0000 (+6 solo al nibble alto)
= 1 0000 0000 (100 en BCD) Resultado:
0001 0000 0000→ 100 (correcto).
3. Suma con Múltiples Ajustes (85 + 15 en BCD)
En algunos casos, varios nibbles pueden requerir ajuste.
Ejemplo 3: Suma compleja (85 + 15 en BCD)
85 en BCD:
1000 010115 en BCD:
0001 0101
Paso 1: Suma binaria
1000 0101 (85)
+ 0001 0101 (15)
= 1001 1010 (9A en binario) Problemas:
Nibble bajo (
1010= 10) → inválido.Nibble alto (
1001= 9) → válido, pero el acarreo afecta.
Paso 2: Ajustar nibble bajo (+6)
1001 1010
+ 0000 0110 (+6 al nibble bajo)
= 1010 0000 Nuevo problema: Ahora el nibble alto (
1010= 10) también es inválido.
Paso 3: Ajustar nibble alto (+6)
1010 0000
+ 0110 0000 (+6 al nibble alto)
= 1 0000 0000 (100 en BCD) Resultado final:
0001 0000 0000→ 100 (correcto).
4. Resumen de Reglas para Suma BCD
Suma binaria normal (nibble a nibble).
Si un nibble es ≥10 (1010 a 1111):
Sumar 6 (0110) a ese nibble.
Si el ajuste genera un nuevo acarreo, propagarlo al nibble siguiente.
5. ¿Por qué Sumar 6?
En BCD, cada nibble representa un dígito decimal (0-9).
En binario,
1010(10) es el primer valor inválido.Al sumar 6, "saltamos" los 6 valores no usados en BCD (
1010a1111), corrigiendo el resultado:1010 (10) + 0110 (6) = 1 0000 (16, pero en BCD es "10" con acarreo).
Conclusión
La suma en BCD requiere verificación y ajuste para mantener la validez de los dígitos decimales. Si un nibble excede 9, +6 lo corrige y asegura el resultado correcto.
¿Te quedaron dudas? ¡Practica con estos ejemplos y comparte tus resultados en los comentarios! 🔢🔍
Bonus:
Usa una calculadora binaria/hex para verificar tus resultados.
En circuitos digitales, este ajuste se implementa con lógica combinacional (ejemplo: el circuito sumador BCD).
¡Espero que te ayude a dominar las sumas en BCD! 😊
Comentarios
Publicar un comentario