Shift Register / Encoder

There is also a complement part that does the 8-to-3 line encoding/multplexing

Called a Priority Encoder, takes 3 bits in and outputs a zero on the line number represented by the value on the inputs. You can also do the same things with a data select if you ground the input.

74147: 10-Line to 4-Line Priority Encoder

74148: 8-Line to 3-Line Priority Encoder

74150: 16-Line to 1-Line Data Selector/Multiplexer

74151: 8-Line to 1-Line Data Selector/Multiplexer

74152: 8-Line to 1-Line Data Selector/Multiplexer

74153: Dual 4-Line to 1-Line Data Selector/Multiplexer

74154: 4-Line to 16-Line Decoder/Demultiplexer

74155: Dual 2-Line to 4-Line Decoder/Demultiplexer

74156: Dual 2-Line to 4-Line Decoder/Demultiplexer with open collector outputs

74157: Quad 2-Line to 1-Line Data Selector/Multiplexer, Noninverting

74158: Quad 2-Line to 1-Line Data Selector/Multiplexer, Inverting

74159: 4-Line to 16-Line Decoder/Demultiplexer with open collector outputs

looks good! i wonder what a 5 input one looks like!

They don't make one a 4 input one is big enough. You can cascade them so you can make what ever size you want.