28-Conversión de números decimales fraccionarios a BCD y viceversa

 Conversión de Números Fraccionarios a BCD y Viceversa: Guía Práctica

En sistemas como cajas registradoras o displays digitales, no solo trabajamos con números enteros, sino también con valores fraccionarios (por ejemplo, precios como $71.80). ¿Cómo manejamos estas conversiones entre decimal fraccionario y BCD? ¡Vamos paso a paso!


1. De Decimal Fraccionario a BCD

El BCD (Binario Codificado en Decimal) representa cada dígito (incluyendo la parte fraccionaria) con 4 bits, usando la ponderación 8421. El punto decimal es simplemente una visualización en el display, pero no se codifica en bits.

Ejemplo: Convertir $71.80 a BCD.

  • Pasos:

    1. Separar parte entera y fraccionaria:

      • Entera: 7 1

      • Fraccionaria: 8 0

    2. Convertir cada dígito a su equivalente BCD (4 bits):

      • 7 → 0111

      • 1 → 0001

      • 8 → 1000

      • 0 → 0000

    3. Resultado BCD:

      Copy
      Download
      0111 0001 . 1000 0000
      • El punto se activa en el display (con el dot), pero no se representa en bits adicionales.

¿Por qué es así?

  • En BCD, cada dígito es independiente, incluso los fraccionarios. El sistema solo necesita "saber" dónde colocar el punto en el display, pero internamente trabaja con dígitos enteros codificados.


2. De BCD a Decimal Fraccionario

Si tenemos un número BCD con punto decimal (ejemplo: 0011 0101 1000 . 0111 0101), seguimos estos pasos:

Ejemplo: Convertir 0011 0101 1000 . 0111 0101 a decimal.

  1. Agrupar en nibbles (4 bits) y convertir cada uno a decimal:

    • 0011 → 3

    • 0101 → 5

    • 1000 → 8

    • 0111 → 7

    • 0101 → 5

  2. Reconstruir el número con el punto:

    • Resultado: 358.75


3. De BCD Fraccionario a Binario Natural

Si queremos convertir el BCD 358.75 a binario puro (base 2):

  1. Convertir la parte entera y fraccionaria por separado:

    • Entera (358): Usar división sucesiva (como en conversiones estándar):

      Copy
      Download
      358 ÷ 2 = 179 → residuo 0  
      179 ÷ 2 = 89  → residuo 1  
      ...  
      Resultado: `101100110` (binario).  
    • Fraccionaria (0.75): Usar multiplicaciones sucesivas:

      Copy
      Download
      0.75 × 2 = 1.5 → entero 1  
      0.5 × 2 = 1.0  → entero 1  
      Resultado: `0.11` (binario).  
  2. Combinar ambas partes:

    • Binario final: 101100110.11.


4. Ejemplo Adicional

Problema: Convertir el binario 10101100.1100 a BCD fraccionario.

  1. Pasar a decimal:

    • Entera: 10101100 → 172

    • Fraccionaria: 0.1100 → 0.75 (usando pesos 2⁻¹ + 2⁻² = 0.5 + 0.25).

    • Decimal: 172.75.

  2. Convertir cada dígito a BCD:

    • 1 → 0001

    • 7 → 0111

    • 2 → 0010

    • 7 → 0111

    • 5 → 0101

  3. Resultado BCD:

    Copy
    Download
    0001 0111 0010 . 0111 0101

Conclusión

  • El BCD fraccionario trata cada dígito (antes y después del punto) como un entero de 4 bits.

  • El punto decimal es una convención de visualización, no una parte codificada en bits.

  • Para convertir a binario natural, usa métodos estándar (divisiones/multiplicaciones sucesivas) y considera las partes entera y fraccionaria por separado.

¿Te sirvió esta explicación? ¡Déjame tus dudas en los comentarios y comparte otros ejemplos! 🔢🔀


Tips adicionales:

  • Si trabajas con displays, verifica cómo activar el dot (punto) en tu hardware.

  • Usa calculadoras online para verificar tus conversiones (ejemplo: RapidTables).

Comentarios

Entradas más populares de este blog

Astable 555 (Tinkercad)

5-¡Circuito LED Intermitente con 555!

1-Lógicas XOR