为何10& (!5)归零?

时间:2013-03-13 20:02:40

标签: c++ math binary

我一直在尝试使用c ++编写代码,但我无法弄清楚为什么返回零。

10 & (!5)
我们知道二进制10是1010,5是0101而不是(5)是1010。 我们来看看:

1010  //Which represent 10
1010  //Which represent not(5)
------AND
1010

这应该实际上返回10而不是零。我错了吗?

1 个答案:

答案 0 :(得分:16)

因为!是布尔否定,而不是按位否定,所以你有效地说10 & 0

你最好不要尝试10 & ~5