我有这个问题:
答案是D,因为他们解释道:
(n XOR 1111 1111)将0反转为1,1反转为0,然后加上 结果为1,我们有两个补码
但据我了解,XOR操作是:
逻辑运算,只要两个输入不同,就输出true
示例:
1011 XOR 1000 = 0011
那么怎么能( n XOR 1111 1111)被反转 n (一个补码)?
答案 0 :(得分:1)
因为你在第二个操作数中使用全1,
如果第一个操作数有1
,那么您获得1 XOR 1 = 0
(相同的输入以及false
)
如果第一个操作数有0
,那么您获得0 XOR 1 = 1
(不同的输入,因此true
)
因此,对于第一个操作数,1
变为0
,0
变为1
。因此,数字是反转的。
所以在你的例子中,
1011 XOR 1111 = 0100
答案 1 :(得分:1)
n xor 1 = not n
由于
如果n为1,则它与1没有差别,因此输出为0
如果n为0,则它与1不同,因此输出为1