Crie uma função que recebe um valor hexadecimal de 0 a F e retorna sua máscara de bits para um display de sete segmentos de cátodo comum. As oito posições de bit são dp, g, f, e, d, c, b, a, e um 1 lógico acende o segmento correspondente.

Exemplos
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
- A ordem dos bits é a seguinte: MSB [dp, g, f, e, d, c, b, a] LSB.
- Isso aparece bastante em trabalhos com FPGA, nos quais é preciso fazer algum tipo de conversão entre valores numéricos e bits que controlam o hardware. Essas conversões muitas vezes não têm um algoritmo simples e exigem codificação manual.
- Se você codificar este desafio manualmente, pode tentar determinar os valores corretos por conta própria, mas, na indústria, se você pode consultar uma referência, é isso que faz. Neste caso, os testes de código contêm todos os valores necessários.