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

看板C_and_CPP作者 (ToMmyDong)時間6年前 (2018/06/11 10:24), 編輯推噓1(106)
留言7則, 3人參與, 6年前最新討論串3/3 (看更多)
※ 引述《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]是一樣的嗎? x&-x 是取一個數字二進位最低非零位數 BIT會用到 1<<10是 2^10喔 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.120.188.205 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1528683854.A.806.html

06/11 10:27, 6年前 , 1F
我還以為這題兩個月前就結案了
06/11 10:27, 1F

06/11 11:17, 6年前 , 2F
平行時空 嘻嘻
06/11 11:17, 2F

06/20 12:12, 6年前 , 3F
寫這種code的應該在面試就直接踢了
06/20 12:12, 3F

06/20 12:12, 6年前 , 4F
業界各種背景的人都有,光維護這種考試style的code浪費太多
06/20 12:12, 4F

06/20 12:13, 6年前 , 5F
人力成本
06/20 12:13, 5F

06/20 12:14, 6年前 , 6F
現在compiler就會最佳化,還會這總寫法真的是浪費別生命
06/20 12:14, 6F

06/20 12:14, 6年前 , 7F
加個括號很難?
06/20 12:14, 7F
文章代碼(AID): #1R7TrEW6 (C_and_CPP)
文章代碼(AID): #1R7TrEW6 (C_and_CPP)