[問題] bitwise and

看板C_and_CPP (C/C++)作者 (~"~)時間14年前 (2011/07/28 10:52), 編輯推噓0(004)
留言4則, 3人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) g++ 程式碼(Code):(請善用置底文網頁, 記得排版) #include <iostream> #include <cstdio> using namespace std; int main(){ int i=1; while(1 &(1<<i) !=0){ printf("%d\n",1&(1<<i)); i++; } printf("Done!\n"); } 請問這個程式碼為什麼不會停呢? 但是把 while(1&(1<<i)!=0) 改成 while( 1&(1<<i) ) 就會停了 但是我在while 裡面印出來1&(1<<i) 的值 明明都是0 怎麼會這樣呢? 是and 出來的結果直接跟 0 比對 會產生什麼誤會嗎? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.184.164.153

07/28 10:54, , 1F
運算子優先級的問題而已...
07/28 10:54, 1F

07/28 10:55, , 2F
簡單來講他會先執行(1<<i)!=0 再來是&
07/28 10:55, 2F

07/28 11:27, , 3F
請改用較符合內文之標題
07/28 11:27, 3F

07/28 11:29, , 4F
謝謝
07/28 11:29, 4F
文章代碼(AID): #1ECCxY21 (C_and_CPP)
文章代碼(AID): #1ECCxY21 (C_and_CPP)