это не универсализация, а костыли... вот, у товарища
r3al, аж нервы не выдержали от этого
его пример кстати показывает насколько все плохо у вас в to_bit. printf подмечен верно, хотя лучше, конечно, sprintf, чтобы поведение сохранить.
PS: ваш скрипт я даже не запускал, но можно спокойно утверждать, что для кодирования алфавита из 10 символов (0-9) использовать 8 бит это "круто"
вас не смущает то, что у вас весь вывод примерно такой:
1 -
00000001
9 -
00001001
0 -
00000000
7 -
00000111
неужто не обратили внимание, что 4 битов достаточно?