运算符优先拼图

时间:2011-03-31 13:48:21

标签: c++

我的变量的初始值定义为:x = 10, y = 4, z = 1以及y>>=x&0x2&&z中的变量值是什么?

我愿意:

y >>= ((Fun1) && z)

Fun1 = x&0x2,即1010 & 0010 = 0010的位操作,或十进制的2;

Fun1 && z返回1,或二进制为0001

然后我的问题是

的操作是什么
y >>= 0001

给了我?

#include <iostream>
using namespace std;

int main()
{
    int x = 10, y = 4, z = 1;

    y >>= x&0x2&&z;

    cout << "x: " << x << endl;
    cout << "y: " << y << endl;
    cout << "z: " << z << endl;

    return 0;
}

2 个答案:

答案 0 :(得分:6)

  1. 如有疑问,请使用大括号
  2. 如有疑问,请使用大括号
  3. 如有疑问,请使用大括号

答案 1 :(得分:2)

y >>= 1

相同
 y = y >> 1

所以它应该有效地将y除以2整数除。