我一直在尝试使用c ++编写代码,但我无法弄清楚为什么返回零。
10 & (!5)
我们知道二进制10是1010,5是0101而不是(5)是1010。
我们来看看:
1010 //Which represent 10
1010 //Which represent not(5)
------AND
1010
这应该实际上返回10而不是零。我错了吗?
答案 0 :(得分:16)
因为!
是布尔否定,而不是按位否定,所以你有效地说10 & 0
。
你最好不要尝试10 & ~5