A multiplicação e a divisão usando operadores de turno em C são realmente mais rápida

A multiplicação e a divisão podem ser obtidas usando operadores de bits, por exemplo

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

e assim por diante

É realmente mais rápido usar o say(i<<3)+(i<<1) para multiplicar por 10 do que usandoi*10 diretamente? Existe algum tipo de entrada que não possa ser multiplicada ou dividida dessa maneira?

questionAnswers(16)

yourAnswerToTheQuestion