今天才注意到取模和取余是不同的操作,“%”这个运算符在Python中是取模,而在Java/C/C++是取余。
具体来说,两者的计算方法都是如下:
[第一步] c=取整(a/b)c=取整(a/b)c=取整(a/b)
[第二步] r=a−b×cr=a-b\times cr=a−b×c
两者的区别主要在于取整的方法,即:
- 取模时,取整操作是向负无穷方向取整,例如-1.xxxx会被取整为-2。
- 取余时,取整操作是向0的方向取整,例如-1.xxxx会被取整为-1。
用一个例子来说明,-7和4作为操作数,
取模:c=取整(−7/4)=取整(−1.75)=−2c=取整(-7/4)=取整(-1.75)=-2c=取整(−7/4)=取整(−1.75)=−2,r=−7−4×(−2)=1r=-7-4\times (-2)=1r=−7−4×(−2)=1
取余:c=取整(−7/4)=取整(−1.75)=−1c=取整(-7/4)=取整(-1.75)=-1c=取整(−7/4)=取整(−1.75)=−1,r=−7−4×(−1)=−3r=-7-4\times (-1)=-3r=−7−4×(−1)=−3
在Python中,“%”是取模。
在Java/C/C++中,“%”是取余。(Java可以用Math.floorMod()取模)
本文探讨了Python中"%"运算符执行的是取模操作,而Java/C/C++中则是取余操作。两者主要区别在于取整方式,取模时向负无穷取整,取余则向0取整。通过实例-7和4说明了两者计算结果的不同。
2269

被折叠的 条评论
为什么被折叠?



