Действительно ли умножение и деление с использованием операторов сдвига в C быстрее?



умножение и деление может быть достигнуто с помощью битовых операторов, например



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


и так далее.



это на самом деле быстрее сказать (i<<3)+(i<<1) умножить на 10, чем при использовании i*10 напрямую? Есть ли какие-то входные данные, которые не могут быть умножены или разделены таким образом?

546   0  

Comments

    Ничего не найдено.