C++之使用位于运算代替取模运算
取模运算所需的时间大约是位与运算的十倍。
当模的大小是2的N次方时,可用位与运算代替取模运算,节省时间,在矩阵快速幂中也经常使用此方法判断要相乘的幂数。
#include <iostream>
using namespace std;
int main(){
int a = 0;
int b = 0;
a = 5%2; //5%2->1
b = 5&(2-1);//0101&0001 ->0001
return 0;
}
当取模运算频次很高时,这个优化就会非常显著。