A multiplexer, or mux, is a digital device that multiplexes multiple inputs onto one output. Depending upon the value of the select inputs, a single data input is connected to the output. A symbol for a 4:1 mux:
```  +------+
--|I0    |
--|I1    |
--|I2    |          __ __      __            __
--|I3   Q|--  Q=(I0*S1*S0)+(I1*S1*S0)+(I2*S1*S0)+(I3*S1*S0)
|      |
--|S1    |
--|S0    |
+------+
```

If a value of '00' is present on S, then I0<->Q. If the value on S is '01', then I1<->Q; S='10' => I2<->Q; S='11' => I3<->Q.

As an example, the multiplexer can be used to time share a single line (here, we are calling it Q). On one end, the transmitter multiplexes the parallel data contained on I0-I3, and on the other end the receiver uses a decoder to demultiplex the signal. S1 and S0 count through all of the possibilities (0-4) at a specific rate, which is synchronized with both the transmitter and receiver via another line. If S changes fast enough, we can effectively transmit all of the data on I0-I3 over a single line, instead of 4. Here's a simple example:

```               Transmitter               Receiver

+---------+               +----------+
>-------------|I3  4:1  |               |   1:4    |
>-------------|I2  MUX  |               | Decoder  |
>-------------|I1       |               |          |
>-------------|I0      Q|---------------|EN      Q3|-->
|         |               |        Q2|-->
+--|S1       |            +--|S1      Q1|-->
+---------+ |+-|S0       |            |+-|S0      Q0|-->
| Counter | || +---------+            || +----------+
|         | ||                        ||
|       Q1|-+|------------------------+|
|       Q0|--+-------------------------+
|   /\    |
+---------+
||
clk
```

We can also use a mux as a quick way to implement many logic functions. Suppose we have a function, F, with this truth table:

```A B|F
---+--
0 0|1  <-m0
0 1|1  <-m1
1 0|0  <-m2
1 1|1  <-m3
```

We then connect the output for each minterm to the inputs of the multiplexer and connect A and B to the select inputs of the mux.

```   ^(+Vcc)
|
|  +------+
+--|I0    |
+--|I1    |
|+-|I2    |
+|-|I3   Q|--> F
| |      |
A >-|-|S1    |
B >-|-|S0    |
| +------+
|
V(Gnd)
```