考虑以下所示的ALU。
如果操作数以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
我们需要知道两件事
- 如果我们将任何数字的xor取为1,我们将以其补码形式获得它。
- 如果我们将任何数字与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)的一部分。
这个问题的测验