概念
對於整數a,b來說,取模運算或者求餘運算的方法要分如下兩步:
1.求整數商:c = a / b
2.計算模或者餘數:r = a - (c * b)
區別在於:第一步對c值的小數取向的不同
取餘運算(Complementation):在計算商值向0方向捨棄小數位
取模運算(Modulo):在計算商值向負無窮方向捨棄小數位
例如
a (Dividend) | b (Divisor) | c | 向0方向捨棄小數位 | c*b | 取餘 | 向負無窮方向捨棄小數位 | c*b | 取模 |
5 | 3 | 1.67 | 1 | 3 | 2 | 1 | 3 | 2 |
5 | -3 | -1.67 | -1 | 3 | 2 | -2 | 6 | -1 |
-5 | 3 | -1.67 | -1 | -3 | -2 | -2 | -6 | 1 |
-5 | -3 | 1.67 | 1 | -3 | -2 | 1 | -3 | -2 |
代碼
在不同的語言中 % 代表的意義不同:C語言中爲取餘運算;Python中爲取模運算