Деление чисел сказывается на программировании микроконтроллеров следующим образом:
- Не во всех процессорах имеются инструкции для выполнения операций деления. 1 Например, их нет в Cortex-M0. 1 Поэтому часто вместо этого компилятор реализует деление путём вызова кода из стандартной библиотеки. 1 В зависимости от реализации и типов входных данных такая операция может занять до 100 тактов. 1
- Если без деления не обойтись, стоит использовать беззнаковые переменные. 1 При делении компилятор получает абсолютные значения из знаковых, а затем переходит к делению беззнаковых чисел. 1 Знак результата определяется в конце. 1
- При делении на константу его можно эффективно переписать на этапе компиляции. 4 Если же деление идёт на переменную, то от него придётся делиться честно. 4
- Когда деление производится на степени двойки, его можно заменить на побитовое смещение. 1 Например, вместо деления на 2 использовать >>= 2. 1
Таким образом, там, где возможно, лучше избегать операций / и %. 1