我一直关注Modulus for Mersenne's Prime,并按照以下两种方法撰写:
第一种方法:
mersneMod(int x){
while(x > 7){
x = (x & 7) + (x >> 3);
}
return x == 7 ? 0 : x;
}
第二种方法:
mod(int x){
return x % 7;
}
当我根据0 to 9000000
中的数字对这两种方法进行基准测试时
我得到以下数字:
Method 1 : 65784647 ns
Method 2 : 2901699 ns
到目前为止,我一直认为方法1应该更快,但事实并非如此。任何人都可以解释在java %
运算符内部发生了什么。谢谢!