0
我一直在尝试使用C++的代码,我无法弄清楚为什么这会返回零。为什么10&(!5)返回零?
10 & (!5)
我们知道10二进制为1010和5为0101,而不是(5)为1010 让我们去这个:
1010 //Which represent 10
1010 //Which represent not(5)
------AND
1010
这实际上应该返回10不为零。我错了吗 ?
我一直在尝试使用C++的代码,我无法弄清楚为什么这会返回零。为什么10&(!5)返回零?
10 & (!5)
我们知道10二进制为1010和5为0101,而不是(5)为1010 让我们去这个:
1010 //Which represent 10
1010 //Which represent not(5)
------AND
1010
这实际上应该返回10不为零。我错了吗 ?
因为!
是布尔否定,而不是按位否定,所以你已经有效地说10 & 0
。
你会更好试图10 & ~5
'!5'是'FALSE'其转换成'0'。 – 2013-03-13 20:03:56
提示:!5!=〜5 ... – jamesdlin 2013-03-13 20:04:02
使用一个更简单的程序来找出'!5'的实际值。 – aschepler 2013-03-13 20:04:35