在一些位操作里可能需要求余数的操作,而且位操作执行效率更高,但除数为2的N次方时,位操作也是一种实现方式。
总结了两种方法如下:
假设M = 2^n,
1:MOD(X, M) = X - (X >> n) << n
2:MOD(X, M) = X&(M-1) //M必须是2的N次方
3:MOD(X, M) = X & ((1 << n+1) - 1)。
2和3其实等效。
在一些位操作里可能需要求余数的操作,而且位操作执行效率更高,但除数为2的N次方时,位操作也是一种实现方式。
总结了两种方法如下:
假设M = 2^n,
1:MOD(X, M) = X - (X >> n) << n
2:MOD(X, M) = X&(M-1) //M必须是2的N次方
3:MOD(X, M) = X & ((1 << n+1) - 1)。
2和3其实等效。