Multiplication and division can be achieved using bit operators, for example
i*2 = i<<1
i*3 = (i<<1) + i;
i*10 = (i<<3) + (i<<1)
and so on.
Is it actually faster to use say (i<<3)+(i<<1)
to multiply with 10 than using i*10
directly? Is there any sort of input that can’t be multiplied or divided in this way?