求余和求模
一般情况下认为求模和求余是一样的,这篇是为了解释他们之间的不同。
% :求余
x % y
- 求余 x rem y: x - n * y, n表示商取整(直接去掉小数,向0取整)
x = 7, y = 3 x rem y = x - n * y = 7 - 2 * 3 = 1
n = x / y = 2.333333 ≈ 2
x = 7, y = -3
n = 7 / -3 = -2.33333 ≈ -2
x rem y = x - n * y = 7 - (-2)*(-3) = 7 - 6 = 1
x = -7, y = 3
n = -7 / 3 = -2.33333 ≈ -2
x rem y = x - n * y = -7 - (-2)*3 = -7 + 6 = -1
余数和被除数的符号相同
- 求模 x mod y: x - n * y, n表示商取整(向下取整)
x = 7, y = -3
x mod y = x - n * y = 7 - (-3)*(-3) = 7 - 9 = -2
n = 7 / -3 = -2.3333 ≈ -3
x = -7, y = 3
x mod y = x - n * y = -7 - (-3)*3 = -7 + 9 = 2
n = -7 / 3 = -2.3333 ≈ -3
求模的符号与除数相同