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时的子集的情况。