Deslocar bits mascarados para o lsb

Quando vocêand alguns dados com uma máscara, você obtém algum resultado do mesmo tamanho dos dados / máscara. O que eu quero fazer é pegar os bits mascarados no resultado (onde havia 1 na máscara) e deslocá-los para a direita para que fiquem próximos um do outro e eu possa executar um CTZ (Count Trailing Zeroes) neles .

Eu não sabia como nomear esse procedimento, então o Google falhou comigo. A operação deve preferencialmentenão seja um loop solução, isso deve ser a operação mais rápida possível.

E aqui está uma imagem incrível feita no MS Paint.

questionAnswers(2)

yourAnswerToTheQuestion