Display de siete segmentos

Crea una función que recibe un valor hexadecimal del 0 al F y devuelve su máscara de bits para un display de siete segmentos de cátodo común. Las ocho posiciones de bit son dp, g, f, e, d, c, b, a, y un 1 lógico enciende el segmento correspondiente.

Texto alternativo

Ejemplos

to_display(0x1) ➞ 0x06
# [dp, g, f, e, d, c, b, a] = [0, 0, 0, 0, 0, 1, 1, 0]

to_display(0x8) ➞ 0x7F
# [dp, g, f, e, d, c, b, a] = [0, 1, 1, 1, 1, 1, 1, 1]

to_display(0x0) ➞ 0x3F
# [dp, g, f, e, d, c, b, a] = [0, 0, 1, 1, 1, 1, 1, 1]

Notas

  • El orden de los bits es el siguiente: MSB [dp, g, f, e, d, c, b, a] LSB.
  • Esto aparece con frecuencia en el trabajo con FPGA, donde tienes que hacer algún tipo de conversión entre valores numéricos y bits que controlan hardware. Estas conversiones a menudo no tienen un algoritmo sencillo y requieren codificación manual.
  • Si codificas manualmente este desafío, puedes intentar determinar los valores correctos por tu cuenta, pero en la industria, si puedes consultar una referencia, lo haces. En este caso, las pruebas de código contienen todos los valores necesarios.