OK, it may sound a bit complicated, but this is what I\'m trying to do :
10101010101
{ 0, 2, 4, 6, 8, 10 }
const size_t size = sizeof(U64)*8; U64 val = 1; vector res; res.reserve(size); for ( size_t i = size; i > 0; --i ) { if ( ( val & bitboard ) != 0 ) { res.push_back(i); } val <<= 1; }