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