Sería posible realizar la conversión utilizando una lógica discreta lista para usar, pero probablemente requeriría entre 6 y 12 chips. También se podría usar fácilmente un par de chips ROM de 32Kx8 (o un 32Kx16), observando que el LSB del valor de entrada no participa en el resultado; La única ventaja de eso sobre un microcontrolador es que su salida representaría los valores del interruptor en "tiempo real" sin necesidad de temporización. También sería posible usar algún tipo de lógica programable, aunque creo que cualquier solución eficiente en el espacio tendría que ser secuencial, lo que implica que también se podría usar un microcontrolador.
Si uno quiere implementar un diseño que use componentes comerciales, puede ser más fácil construir un circuito basado en un contador BCD, un contador binario, un par de comparadores de 8 bits, pestillos de 8 bits y Un poco de lógica del pegamento. Básicamente, cuente de 0000 a 9999 (BCD) repetidamente; cuando el conteo finaliza, reinicie el contador binario, y cuando el conteo BCD coincida con la entrada del interruptor, cierre el valor del contador binario. Otros enfoques secuenciales pueden ser más rápidos, pero el enfoque mencionado debería ser simple. Una alternativa sería algunos latches, multiplexores y ALU, de modo que el circuito multiplique iterativamente un acumulador por 10 y agregue la siguiente entrada de interruptor. Ese enfoque probablemente podría producir una nueva salida cada 8 ciclos aproximadamente, pero no creo que haya una necesidad real de algo tan rápido.