📜  门| GATE-CS-2003 |第90章

📅  最后修改于: 2021-06-28 21:22:59             🧑  作者: Mango

考虑以下所示的ALU。

GATECS2009Q46

如果操作数以2的补码表示,则可以通过仅适当地设置控制线K和C0(+和–分别表示加法和减法)来执行以下哪些操作?
(A) A + B,以及A – B,但不是A + 1
(B) A + B,以及A + 1,但不是A – B
(C) A + B,但不包括A – B或A + 1
(D) A + B,A – B和A + 1答案: (A)
说明:我们可以将k和c的值设置为0或1

我们需要知道两件事

  1. 如果我们将任何数字的xor取为1,我们将以其补码形式获得它。
  2. 如果我们将任何数字与0进行异或运算,我们将得出该数字本身。

因此,在设置k = 1时,我们可以获得–B,而c将像选择信号一样工作

像c = 0意味着加

C = 1表示减

因此,当k = 1 c = 1时,我们得到AB

当K = 0 c = 0时,我们得到A + B

我们需要b = 1,c = 0或b = 0,c = 1才能获得A + 1
由于b不是预定义的,所以我们无法获得A + 1

因此,Ans是(A)的一部分。
这个问题的测验