Re: [問題] x+=x&-x 是什麼意思?
看板C_and_CPP (C/C++)作者notBeing (read and be read)時間8年前 (2018/04/28 11:44)推噓3(3推 0噓 0→)留言3則, 3人參與討論串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,
8年前
, 1F
04/28 12:02, 1F
推
04/28 16:26,
8年前
, 2F
04/28 16:26, 2F
推
04/28 18:51,
8年前
, 3F
04/28 18:51, 3F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章