Я увидел выбранный ответ на этот пост.
Я был удивлен, что (x & 255) == (x % 256)
, если x - целое число без знака, я задавался вопросом, имеет ли смысл всегда заменять %
на &
в x % n
для n = 2^a (a = [1, ...])
, а x - положительное целое число.
Так как это особый случай, когда я, как человек, могу решить, потому что знаю, с какими значениями будет работать программа, а компилятор этого не делает. Могу ли я получить значительное повышение производительности, если моя программа использует множество операций по модулю?
Конечно, я мог просто скомпилировать и посмотреть на разборку. Но это только ответит на мой вопрос для одного компилятора/архитектуры. Я хотел бы знать, если это в принципе быстрее.