Если вы вычисляете по модулю степени два, использование побитового И проще и обычно быстрее, чем выполнение деления. Если b
является степенью двойки, a % b == a & (b - 1)
.
Например, возьмем значение в регистр EAX, по модулю 64 .
Простейшим способом будет AND EAX, 63
, потому что 63 - это 111111 в двоичном формате.
Маскированные старшие цифры нам не интересны. Попробуйте!
Аналогично, вместо использования MUL или DIV со степенями два, сдвиг битов - это путь. Остерегайтесь целых чисел со знаком, хотя!