Binary rotation with blockage

Hi,

I want to rotate a binary number by one each iteration but only if the adjacent location is empty.

Examples:

01110000 becomes

00111000

01011011 becomes

00101111

01110011 becomes

00111011

I could use a loop to perform the function but thought there might be a math function to collapse the array in this fashion?

Thanks for looking.