int mask=1,ans=0; while(mask<max)mask<<=1; while(mask>0) { if(/*test condition*/)ans|=mask; mask>>=1; }