※ 引述《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喔