我需要使用门电路为有符号二进制转换器创建一个 2 的补码。我可以使用哪些逻辑门?
3 回答
先前的答案部分不正确。使用非门来获得 1 的补码是正确的,但要获得 2 的补码,您需要求和和进位。求和由 XOR 门执行,进位由 AND 门执行。每个位都需要一个 NOT、一个 XOR 和一个 AND 门。将每条数据线连接到一个非门(执行 1 的补码) 将每个 XOR 的一个输入连接到每个 AND 的一个输入。从现在开始,我将其称为 input1。将每个 XOR 的另一个输入连接到每个 AND 的另一个输入。从现在开始,我将其称为 input2。将每个 NOT 输出连接到其对应的输入 1。将较低有效位的 input2 连接到 VCC(逻辑电平 1)。将不太重要的与门的输出连接到第二次重要的输入2。(执行进位)对所有门重复最后一步。
我相信你可以只使用异或门来实现任何算法。去吧。
您可以使用非门来切换输入位以获得 1 的补码。然后将每个非门的输出放到另一个“2输入异或门”的输入。
因此,如果您有 N 个输入,那么您需要 N 个非门和 N 个 Xor 门,它们的输出将 Not Gates 连接到 Xor 门的输入之一。并将 1(无论您用来表示 1 的高电压/低电压)放到 Xor 门的另一个输入端,您将在其中放置最低有效输入位的切换输出。然后将这个 Xor 门的输出放到第二个 Xor 门中,在那里放置第二个最低有效输入位的切换输出。通过这种方式,您将第 (N-1) 个 Xor 门输出的输出放入第 N 个 Xor 门的输入。
最后,当您从 Xor 门的输出中获取输出时,您会发现输入数的 2 的补码。