2013-03-13 105 views
0

我一直在尝试使用C++的代码,我无法弄清楚为什么这会返回零。为什么10&(!5)返回零?

10 & (!5)
我们知道10二进制为1010和5为0101,而不是(5)为1010 让我们去这个:

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

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

+5

'!5'是'FALSE'其转换成'0'。 – 2013-03-13 20:03:56

+5

提示:!5!=〜5 ... – jamesdlin 2013-03-13 20:04:02

+2

使用一个更简单的程序来找出'!5'的实际值。 – aschepler 2013-03-13 20:04:35

回答

16

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

你会更好试图10 & ~5

相关问题