У меня есть код, в котором я вычисляю x% 25. x всегда принимает положительное значение, но его динамический диапазон велик.
Я обнаружил, что этот конкретный фрагмент кода вычисления x% 25 занимает большие циклы. Мне нужно оптимизировать его.
Предварительно вычисленная таблица поиска исключена из-за возможного большого объема памяти таблицы.
В качестве второго подхода я кодировал фрагмент ниже (код C) -
mod(a, b)
{
int r = a;
while(r >= b)
{
r = r - b;
}
return r;
}
1.) Как я могу оптимизировать этот код для циклов (сжать его до максимума)?
2.) Есть ли какой-то совершенно другой оптимизированный способ достижения x% 25 (я знаю, что это не обычная операция, но все же, в поисках умных входов, которые люди могли бы использовать в своем опыте, которые могли бы мне помочь.) *
Спасибо.
-AD
EDIT:
Я думаю, что при использовании собственного оператора по модулю% в C внутренне используется операция деления (/), которая является дорогостоящей на процессоре, который я использую. (Нет команды div). следовательно, пытаясь понять, может ли пользовательская реализация превзойти внутренние вычисления, используя оператор%.
-AD