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

作者: ToMmyDong (ToMmyDong)   2018-06-11 10:24:12
※ 引述《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喔
作者: jerryh001   2018-06-11 10:27:00
我還以為這題兩個月前就結案了
作者: alan23273850   2018-06-11 11:17:00
平行時空 嘻嘻
作者: Sex5F (HTC)   2018-06-20 12:12:00
寫這種code的應該在面試就直接踢了業界各種背景的人都有,光維護這種考試style的code浪費太多人力成本現在compiler就會最佳化,還會這總寫法真的是浪費別生命加個括號很難?

Links booklink

Contact Us: admin [ a t ] ucptt.com