Por ejemplo, para multiplicar $7 \times 3$, escribir en binario :
$$
7 = 111 \quad; \quad 3 = 11
$$
Ahora, el punto es, imaginar haciendo multiplicación larga con estos números :
$$
\requieren{encerrar}
\begin{array}{}
\ \ \ \ 111 \\[-3pt]
\underline{\times \ \ \ 11 }\\[-3pt]
\ \ \ \ 111 \\[-3pt]
\underline{\ \ 1110} \\[-3pt]
\underline{10101}(=21)
\end{array}
$$
La idea es esta : $3$ tiene queridos en tanto sus unidades y "dos" de la posición, así que cambio de $7$ por $0$, a continuación, $7$ por $1$, y sumarlos.
Ahora, imagina que estás haciendo esto para los números con muchos ceros. Por ejemplo , para :
$$
1010 = 10 \quad ; \quad 11 = 1011
$$
Entonces :
$$
\requieren{encerrar}
\begin{array}
\ \ \ \ \ \ \ \ 1010 \\[-3pt]
\underline{\ \times \ 1011} \\[-3pt]
\ \ \ \ \ \ \ 1010 \\[-3pt]
\ \ \ \ \ 10100 \\[-3pt]
\ \ \ \color{blue}{000000} \\[-3pt]
\underline{\ 1010000} \\[-3pt]
\underline{\ 1101110}
\end{array}
$$
Lo que equivale a la adición de $1010$'s hacia la izquierda desplaza cero veces, de una sola vez y tres veces. Tenga en cuenta que estas son exactamente las posiciones en las que se $1011$ tiene un uno.
Vamos a revertir lo anterior, y de un vistazo :
$$
\requieren{encerrar}
\begin{array}
\ \ \ \ \ \ \ \ 1011 \\[-3pt]
\underline{\ \times \ 1010} \\[-3pt]
\ \ \ \ \ \ \ \color{blue}{0000} \\[-3pt]
\ \ \ \ \ {10110} \\[-3pt]
\ \ \ \color{blue}{000000} \\[-3pt]
\underline{\ 1011000} \\[-3pt]
\underline{\ 1101110}
\end{array}
$$
Que es equivalente a la adición de $1011$ desplazado a la izquierda exactamente una vez y tres veces, que son exactamente las posiciones en las que se $1010$ tiene un uno.
La anterior sugiere una estrategia para la multiplicación de números binarios $a$ e $b$ :
Encontrar las posiciones en las que se $b$ tiene un uno. Llamar a estas posiciones $p_1,p_2,...,p_n$.
Considerar los números binarios formados por la izquierda desplazamiento de $a$ por $p_1, p_2,..,p_n$.
Agregar todos estos números, para obtener la respuesta.
Tenga en cuenta que esto no implica "duro" de la multiplicación, debido a que el desplazamiento a la izquierda es técnicamente multiplicación por potencias de $2$ pero (como para las potencias de $10$ en el decimal caso) se realiza fácilmente, y estamos reducidos a la más fácil de la operación de la suma de la izquierda turnos.
Esta técnica a menudo aparece en los libros que cubren la rápida multiplicación de las técnicas, especialmente por los números que están cerca de los poderes de $2$.
EDIT: Para Vakil s $20 \times 13$, en primer lugar se escribieron lo que él hace, entonces, ¿cómo se obtiene la respuesta :
$$
\begin{array}{rrr}
0 && 20 && 13 \\
1 && 40 && 6 \\
2 && 80 && 3 \\
3 && 160 && 1 \\[1pt]
\end{array}
$$
Luego añade, $160+80+20 = 260$, la respuesta correcta.
En el procedimiento , esto es lo que está sucediendo :
En la primera línea se escribe el dos números y, a continuación, indicar como número de fila cero.
A continuación, en la siguiente fila se duplica el número en la segunda entrada, dividir la tercera entrada por $2$ y redondee hacia abajo , y se indica como número de fila $1$.
Hacemos esto hasta llegar a $1$ como la tercera entrada de algunos de fila.
Ahora, en la segunda columna, la de recoger todas las entradas de manera que los correspondientes tercera entrada es impar. Por eso escogimos $160$ porque $1$ es impar, se recogen $80$ porque $3$ es impar, no coger $40$ como $6$ es incluso y recogió $20$ como $13$ es impar.
Agregar las entradas para obtener la respuesta.
¿Cómo funciona esto? Vamos a escribir los mismos números que están arriba en el sistema binario para ver lo que está sucediendo :
$$
\begin{array}{rrr}
0 && 10100 && 1101 \\
1 && 101000 && 110 \\
2 && 1010000 && 11 \\
3 && 10100000 && 1 \\[1pt]
\end{array}
$$
Añadimos $10100$ porque $1101$ termina con $1$. Añadimos $1010000$ porque $11$ termina con $1$. Añadimos $10100000$ porque $1$ termina con $1$. Nosotros no añada $101000$ porque $110$ termina con $0$.
Ahora es bastante obvio que este algoritmo viene a nuestro rescate. La "división por dos" paso no es sino "la eliminación de la última bits" en binario. Ahora, nos centramos en el último bit del nuevo número, y si este es $1$ le sumamos que la entrada en la segunda fila, de lo contrario lo dejamos. De nuevo tenemos que dividir por $2$, eliminando así el último bit, etc.
Creo que desde aquí usted puede averiguar cómo funciona el algoritmo, y cómo se corresponde a lo que escribí anteriormente.