取模运算
背景
取模运算(mod)和取余运算(rem)两个概念有重叠的部分,但又不完全一致;主要区别在于对负整数进行除法运算时操作不同。取模主要是用于计算机术语中;取余则更多是数学概念。
取模和取余的区别
- 取余运算
在计算商值时,商值向0方向舍入;商靠近0原则 - 取模运算
在计算商值时,商值向负无穷方向舍入;商取小原则
计算步骤
假设有整数a和b,那么取模/取余运算可以分为两步运算:
- 求整数商:c = a / b;
- 计算模/余数:r = a - ( c * b );
- 总计算模/余数:a % b = a - b[a/b] ([a/b]表示整数商)
例子
取模
简述 | 商值 | 取模值 | |
---|---|---|---|
5 mod 3 = 2 | 5/3 = 1.66 商取小原则 商 = 1 | 5 - 3 * 1 = 2 | 2 |
-5 mod 3 = 1 | -5/3 = -1.66 商取小原则 商 = -2 | -5 - (3 * -2) = 1 | 1 |
5 mod -3 = -1 | 5/-3 = -1.66 商取小原则 商 = -2 | 5 - (-3 * -2) = -1 | -1 |
-5 mod -3 = -2 | -5/-3 = 1.66 商取小原则 商 = 1 | -5 - (-3 * 1) = 2 | -2 |
取余
简述 | 商值 | 取余值 | |
---|---|---|---|
5 rem 3 = 2 | 5/3 = 1.66 商靠0原则 商 = 1 | 5 - 3 * 1 = 2 | 2 |
-5 rem 3 = -2 | -5/3 = -1.66 商靠0原则 商 = -1 | -5 - (3 * -1) = - 2 | -2 |
5 rem -3 = 2 | 5/-3 = -1.66 商靠0原则 商 = -1 | 5 - (-3 * -1) = 2 | 2 |
-5 rem -3 = -2 | -5/-3 = 1.66 商靠0原则 商 = 1 | -5 - (-3 * 1) = - 2 | -2 |
作者:蜗牛写java
链接:https://www.jianshu.com/p/5e1a83e8be3b
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。