Cascaded shift registers, 7-seg displays, PC input

while you would have to use a couple extra chips, you remove a LOT of code and overhead to any project by reducing the amount of work for each iteration of the program.

for example: your method requires extra memory to map the outputs correctly, if you use BCD then you don't really require any extra arrays or complicated if statements (my algorithm for 2 digits was only a dozen lines or so).