0

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

10 & (!5)
我们知道二进制中的 10 是 1010,5 是 0101,not(5) 是 1010。让我们开始吧:

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

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

4

1 回答 1

16

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

你最好试试10 & ~5

于 2013-03-13T20:04:08.373 回答