0

我刚刚开始使用位移来优化我的一些代码以解决 SPOJ 编程问题。我正在寻找如何使用模数来做到这一点。有没有人有任何建议或链接到可能有任何帮助的信息?

4

2 回答 2

3

无法将位移位用于模运算。位移更类似于除法而不是模数。

按位与可用于一些非常简单的模运算(例如,& 3代替% 4),但加速非常小,优化 JRE 很可能已经自行进行优化。

于 2013-06-06T20:25:43.083 回答
1

我希望这不是侮辱基本的,但模数的位掩码(不是真正的位移位)仅适用于 2 的幂的除数。因此位掩码技术往往仅在以下情况的子集中有用你事先知道除数是什么。

此外,如果您可以对除数进行硬编码——这通常是编译器会尽可能优化计算的情况。

于 2013-06-06T20:28:01.940 回答