C++与运算(&)错误笔记(优先级)

来源:互联网 发布:疯狂的美工助手破解版 编辑:程序博客网 时间:2024/05/01 10:23

在实际使用与运算的时候遇到了下面的错误:

int _tmain(int argc, _TCHAR* argv[]){int tmp = 915;int e = 1;for (int i = 0; i < 12; i++){if (tmp & e == e)std::cout << true << std::endl;elsestd::cout << false << std::endl;e = e << 1;}return 0;}
程序总是跳入第8行,即if总是判断为正确。
错误原因为:与运算(&)的优先级低于等于运算(==),所以程序总是先计算右边的等于(==)。

修改如下:

if ((tmp & e) == e)


0 0
原创粉丝点击