例如。
int main(){
int s = 4, i = 3;
if(s & i == 0) cout << (s & i) << endl;
if(!(s & i)) cout << (s & i) << endl;
return 0;
}
只输出一个零。 为什么不打印或打印两个零?
最佳答案
==
的优先级高于 &
。所以
if (s & i == 0)
实际上等同于
if (s & (i == 0))
换句话说,您正在检查 i
是否为 0
,然后使用
。你可能想要&
计算结果(0 或 1) >s
if ((s & i) == 0)
关于c++ - if( !(s & i) ) 和 if( s&i == 0 ) 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41970814/