int aaa = 14;
int bbb = 0;
for(mask=1<<n-1;mask!=0;mask>>=1)
bbb |= ((bbb >> 1) + aaa) & mask;
こんな感じか?