概念
对于整数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中为取模运算