C++运算位操作

来源:百度知道 编辑:UC知道 时间:2024/05/22 17:35:38
若 int x=7,y=8,z=3;则运行 x ^ y & -z
结果是多少?请解释详细一点。谢谢啦!

看了楼下的答案,我想我该改一下。
结果是15,我以前把&当成左结合了。
~z是按位取反,为-4;即1100
x^y为15;1111;
x^y&~z为1100,为15;
这里应该先算y&~z

如果答案是12的话程序为
#include <iostream>
using namespace std;
int main()
{
int x=7,y=8,z=3;
int a=(x^y)&~z;
cout<<a<<endl;
return 0;

}
而这里应该改成x^(y&~z),答案是15。

15
就一个优先级问题先计算-z,再计算&
相当于 (x ^ (y &( -z) ))