我正在为Java寻找模数的替代方案。原因是表现。
我必须运行一个循环一段时间的脚本,并在每个循环中执行模数计算。现在我在很多网站上看到了一个有点解决方案,但是在1 % 3
的情况下它给出了不同的结果。
1 % 3; // results in 1
1 & (3-1); // results in 0
有人可以解释一下吗?大多数计算都很顺利,但这是我发现的一个组合,它没有给出相同的结果。
答案 0 :(得分:3)
对于正整数,如果i & (n-1)
是2的幂,则i % n
相当于n
。它不适用于所有数字。否则我们都会一直以快速的方式做到这一点。