for(int j=w;j;j=(j-1)&w);
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
for(int j=W;j;j=(j-1)&w);
每次把最后一个1赋为0,并把剩下的0赋成1,并与原数取&
这样能做到枚举全每一个1位是0和1时的子集的情况。
for(int j=w;j;j=(j-1)&w);
for(int j=W;j;j=(j-1)&w);
每次把最后一个1赋为0,并把剩下的0赋成1,并与原数取&
这样能做到枚举全每一个1位是0和1时的子集的情况。
转载于:https://www.cnblogs.com/seamtn/p/11562292.html