总结:
‘%’ 在C/C++,Java等语言中意为 取余 ,在python 中意为 取模
取余(rem)和取模(mod)在被除数、除数同号时,结果是等同的,异号时会有区别,所以要特别注意异号的情况。
值得注意的是两者都符合 “同号相减,异号相加”
取余:使商偏大原则.eg: PS:结果符号看前
- 5 rem 3 = 2
- -5 rem 3 = -2
- 5 rem -3 = 2
- -5 rem -3 = -2
个人总结:在取余中,由于符号看前,被除数与结果并不会发生正负数越界情况,只需对应相应的符号位 + 被除数与除数之间的余数即可。
取模:使商偏小原则.eg: PS:结果符号看后
- 5 mod 3 = 2
- -5 mod 3 = 1
- 5 mod -3 = -1
- -5 mod -3 = -2
技巧:当运算涉及负数时,取余运算结果与%前符号相同,取模运算与%后符号相同。
个人总结:在取模中,由于符号看后,被除数与结果可能会发生正负数越界情况。在发生异号相除时,我们可以简单理解为在取余的基础上再加上一次模数,使其发生越界即可。