Re: [問題] x+=x&-x 是什麼意思?

看板C_and_CPP作者 (read and be read)時間6年前 (2018/04/28 11:44), 編輯推噓3(300)
留言3則, 3人參與, 6年前最新討論串2/3 (看更多)
如果有號數表示方式為2的補數 MSB <---------------> LSB +-----------------------+ x := | whatever | 1 | 0...0 | +-----------------------+ +-----------------------+ -x = | ~whatever | 1 | 0...0 | +-----------------------+ +-----------------------+ x&-x = | 0.......0 | 1 | 0...0 | +-----------------------+ ※ 引述《zxcv14011 (Bessiozs)》之銘言: : 最近看到程式碼 : 有人這樣寫 : for(;x>=0; x+=x&-x) : 但不太了解後面的 x+=x&-x是什麼意思 : 試著寫了 : for(;x>=0; x+=x&-x) : { : cout<<x<<endl; : } : 跑的結果都是從 x開始 然後變成2的指數 : 所以想問 x+=x&-x是要怎樣解讀? : 另外想問一下 : int a[1<<10] : 這樣跟 a[10000000000]是一樣的嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.37.171.77 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1524887075.A.208.html

04/28 12:02, 6年前 , 1F
04/28 12:02, 1F

04/28 16:26, 6年前 , 2F
謝謝解釋
04/28 16:26, 2F

04/28 18:51, 6年前 , 3F
了解了 謝謝解釋
04/28 18:51, 3F
文章代碼(AID): #1Qu-uZ88 (C_and_CPP)
文章代碼(AID): #1Qu-uZ88 (C_and_CPP)