Es la multiplicación y división usando operadores de cambio en C realmente más rápida?

a multiplicación y la división se pueden lograr utilizando operadores de bits, por ejemplo,

i*2 = i<<1
i*3 = (i<<1) + i;
i*10 = (i<<3) + (i<<1)

y así

¿Es realmente más rápido usar say(i<<3)+(i<<1) para multiplicar por 10 que usandoi*10 directamente? ¿Hay algún tipo de entrada que no se pueda multiplicar o dividir de esta manera?

Respuestas a la pregunta(16)

Su respuesta a la pregunta