计算器原理层面,取模操作不是一个基本的指令,而是由多个指令组合而成,所以性能会比较低。
public static int floorMod(int x, int y) {
int r = x - floorDiv(x, y) * y;
return r;
}
public static int floorDiv(int x, int y) {
int r = x / y;
// if the signs are different and modulo not zero, round down
if ((x ^ y) < 0 && (r * y != x)) {
r--;
}
return r;
}
|