📅  最后修改于: 2023-12-03 15:39:54.263000             🧑  作者: Mango
该问题涉及数字逻辑电路中的多路复用器和解多路复用器。下面是一个简单的介绍。
多路复用器是一种电路,可将多个输入信号转换为单个输出信号。它由一个选择输入和多个数据输入组成。选择输入用于控制哪个数据输入将被传输到输出。多路复用器的输出被称为多路复用输出。
下面是一个简单的二输入四路复用器的真值表:
| S1 | S0 | D0 | D1 | D2 | D3 | Y | |----|----|----|----|----|----|---| | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 0 | 1 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 1 | 0 | 0 | 0 | 1 | | 1 | 1 | 0 | 1 | 0 | 0 | 1 |
解多路复用器与多路复用器相反。它将单个输入信号转换为多个输出信号。它也由一个选择输入和多个数据输出组成。选择输入用于控制哪个数据输出将被传输。解多路复用器的输入被称为解多路复用器输入。
下面是一个简单的一路解多路复用器的真值表:
| S | Y0 | Y1 | |---|----|----| | 0 | 1 | 0 | | 1 | 0 | 1 |
以下是简单的代码,它实现了一个四输入二路复用器和一个解二路复用器。
#### 多路复用器
public class Multiplexer {
public boolean output(boolean s1, boolean s0, boolean d0, boolean d1, boolean d2, boolean d3) {
boolean[] inputs = {d0, d1, d2, d3};
return inputs[(s1 ? 2 : 0) + (s0 ? 1 : 0)];
}
}
#### 解多路复用器
public class Demultiplexer {
public boolean[] output(boolean s, boolean d) {
return new boolean[]{s ? false : d, s ? d : false};
}
}
这些是非常简单的实现。在实际应用中,多路复用器和解多路复用器被用于各种电子设备,例如计算机内存。