1樓:
是先算2+a=3,然後a左移3位,相當於乘以8,輸出8,a的值是沒有變的還為1
你執行一下一下**:
#include
using namespace std;
int main()
很明顯,後來輸出的a,還是1,將a<<2+a,改成a<
2樓: 1 a << 2 + a表示a左移3位,左移1位相當於乘2,左移3位相當於乘8。上面那個式子等價於a=a*8。 2 這個二進位制00000001左移一位變成00000010,是不是相當於乘2呢? 3 加法運算優先於左移運算,因此a<<2+a相當於a<<(a+2)。 3樓: 相當於 a<<(2+a) 即 1右移3位 結果就是8 注意運算子優先順序 4樓:嘻嘻哈哈一下子 a<<2 後 a=4?不對吧… 忘了優先順序了,按照你的結果,應該是+的大於<<,相當於1<<3,也就是8了… 5樓:匿名使用者 你要先考慮優先順序,《和+的優先順序,a+2等於3,於是便左移3位就到8了,即:0000 0001左移3為,0000 1000等於8. 6樓:匿名使用者 a<<2 後 a=4 然後 +a 就是a+a=8 一.除錯了一下a a new b 的執行順序 先載入類,執行父類的靜態變數static int j 7 然後執行子類的靜態變數及 塊static int j 9 static 這裡會先執行new a 然後執行t 可以分1 2 兩步來看 1 出現new a 了就會載入非靜態變數int k 6,然後呼叫... printf lf n c 這句話有問題 c表示的是變數c的地址,應該把這句話改為,printf lf n c 去掉 符號即可 c語言,寫遞迴函式,把輸入的一個整數轉換成二進位制輸出。我編寫的函式執行後的結果總會在後面多了一個1,include stdio.h int mybinary int m ... 用兩個版本的gcc看,結果是33.33,10 如果真出現18 我覺得可能是編譯器錯誤 33.33,10吧 setprecision 4 是控制輸出流顯示浮點數的數字個數為4setw 3 是控制輸出寬度為3,若資料位數不到3,則在左邊補空格來輸出 hex是把整數以16進位制形式輸出,貌似對浮點數不起作...為什麼這個Java程式會輸出這個結果
C語言自己編寫函式 為什麼輸出結果總是
這個C 的結果為什麼輸出是33 33,18函式的意思我懂