我有一個家庭作業問題,我知道答案,但不明白爲什麼它是答案,只是希望找到能夠向我解釋的人。移位算術解釋(C)
#include <stdio.h>
int main(void){
int a = 0, b = 1, c;
c = a << b + b << a;
printf("d%\n",c);
return 0;
}
所以答案就出來了,所以C ='0'。我認爲'一個< < b'將等於0,'b < < a'會出來1,所以'c = 0 + 1'。爲什麼這是錯的?
然而,當我嘗試:
c = b << a + a << b
C等於 '2'。這對我來說更沒意義。我會很感激,如果有人能向我解釋爲什麼它會像這樣工作,或者指向我一些參考,以澄清這種行爲給我。
這很有道理,謝謝! – M4v