2011-03-31 73 views
0

我的變量初始值定義如下:以及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; 
} 
+1

這應該得到一個功課標籤? – hometoast 2011-03-31 13:49:19

+1

你編譯並運行它嗎? – 2011-03-31 13:51:03

+0

'&'和'&&'有什麼區別?運營商的優先級是什麼? – 2011-03-31 13:52:55

回答

2
y >>= 1 

相同

y = y >> 1 

所以它應該有效整除y 2.

+0

很酷。有一個>> =操作符稱爲按位右移賦值,對嗎?你似乎用foo + = 1 => foo = 1 + foo這樣的速記,對嗎? – Dean 2011-03-31 14:14:06

+0

對。你的問題是那個操作員是什麼?我回答:「y >> = 0001的操作給了我什麼?」 – hometoast 2011-03-31 18:18:35

6
  1. 有疑問時使用的牙套
  2. 疑問使用當撐杆
  3. 疑問使用當撐杆