Use bit shifting to test every bit of i
:
for(x=0; x<sizeof(int) * 8; x++)
{
if((i & (1<<x)) > 0)
{
// bit at position x is set in i
add vector[i];
}
}
this will result in
011 & 001 = 001 // true
011 & 010 = 010 // true
011 & 100 = 000 // false
.. etc