Некоторые способы оптимизации кода для быстрого вычисления целочисленного деления:
- Замена деления на степени двойки битовым сдвигом. alexgyver.ru В операциях целочисленного деления, где делитель является константой или числом, можно ускорить вычисление, если делитель состоит из степени двойки. alexgyver.ru Для этого нужно заменить деление на 2^n битовым сдвигом вправо на n. alexgyver.ru Например, val / 2 == val >> 1, val / 8 == val >> 3 и так далее. alexgyver.ru Важно учитывать, что такая замена работает правильно только для положительных чисел. alexgyver.ru
- Использование констант. alexgyver.ru Константы работают гораздо быстрее переменных при передаче их в качестве аргументов в функции. alexgyver.ru Всё, что не будет меняться в процессе работы программы, рекомендуется делать константами. alexgyver.ru
- Замена деления на константу умножением на другую константу. habr.com Если делитель константа, то деление можно заменить на умножение на какое-то другое число (обратное число, которое вычисляется во время компиляции). habr.com Тогда код будет быстрее работать и потреблять меньше энергии. habr.com
- Представление числа как массива. stackoverflow.com Для действительно большого целочисленного деления (например, чисел больше 64 бит) можно представить число как int[] и выполнять деление довольно быстро, беря по две цифры за раз и деля их на 3. stackoverflow.com Остаток будет частью следующих двух цифр и так далее. stackoverflow.com
Для оптимизации кода также рекомендуется использовать современные компиляторы, которые сами знают, как лучше написать машинный код, чтобы программа работала быстрее. acm.bsu.by