Escribir $a$ $b$ en sistema binario.
Tenga en cuenta que la operación (1) es para eliminar el último dígito binario, y la operación (2) es para añadir un cero al final.
Así, llegando a $b$ es posible si y sólo si $b$ $a$ comienzan con la misma cadena de $1$'s y $0$'s, y después de esta parte común, $b$ no tiene. Tenga en cuenta que no hay ninguna operación nos permite añadir.
El número de pasos, cuando sea posible, es el número de dígitos que necesitamos quitar de la $a$ más el número de ceros que ha $b$ después de la parte común.
Ejemplo: $a=55$, $b=104$.
En binario: $a=110101$, $b=1101000$. Vemos que la más larga posible de partida común de la cadena de es $11010$, de modo que eliminar el último dígito de $a$, es decir, hacemos la operación (1) una vez. Después de eso, se añaden dos ceros, es decir, hacemos la operación (2) dos veces. Esto hace tres pasos.
Ejemplo: $a=24$, $b=26$.
En binario: $a=11000$, $b=11010$. Este caso es imposible, porque después de la partida común de la cadena ($110$) el número de $b$ tiene uno.
EDIT: Este método se puede aplicar fácilmente en el caso particular de que $b$ es una potencia de dos. Bajo este supuesto, el algoritmo siempre funciona, ya que cualquier par de enteros positivos números común de partida de la cadena cuando se escribe en binario (es decir,$1$) y $b$ sólo tiene ceros después de esta partida.