13.求余和求模

95 阅读1分钟

求余和求模

一般情况下认为求模和求余是一样的,这篇是为了解释他们之间的不同。

% :求余

x % y

  1. 求余 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.3333332
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

余数和被除数的符号相同

  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

求模的符号与除数相同