1.取模运算和取余运算的区别
两者计算方法一样,都是用同一个公式
余数(模)=被除数-商×除数
但是在确定商的值时,两者出现了区别
取模运算(Mod)时,商向负无穷方向舍入;而取余运算则向0舍入
所以当被除数和除数符号相同时,两者结果一样
当被除数和除数符号不同时,此时商为负数,取余运算会取靠近0的那个;而取模运算则会取靠近负无穷方向的那个。
举例来说:
取余运算
9÷5=1……4
商可以选1或2(对应余数为4或-1),由于1更靠近0,所以商取1,则余数为4
-9÷-5=1……-4
商可以选1或2(对应余数为-4或1),由于1更靠近0,所以商取1,则余数为-4
-9÷5=-1……-4
商可以选-1或-2(对应余数为-4或1),由于-1更靠近0,所以商取-1,则余数为-4
9÷(-5)=-1……4
商可以选-1或-2(对应余数为4或-1),由于-1更靠近0,所以商取-1,则余数为4
取模运算
9÷5=1……4
商可以选1或2(对应模为4或-1),由于1更靠近负无穷,所以商取1,则模为4
-9÷-5=1……-4
商可以选1或2(对应模为-4或1),由于1更靠近负无穷,所以商取1,则模为-4
-9÷5=-2……1
商可以选-1或-2(对应模为-4或1),由于-2更靠近负无穷,所以商取-2,则模为1
9÷(-5)=-2……-1
商可以选-1或-2(对应模为4或-1),由于-2更靠近负无穷,所以商取-2,则模为-1
另外,在不同环境下,%表示的含义不同,
在c/c++、java中为取余,在python中为取模
本文详细解析了取模运算(Mod)与取余运算在计算过程中的关键区别,尤其是在处理正负数时的不同表现。取模运算商向负无穷舍入,而取余运算向0舍入,导致在被除数和除数符号不同时,两者的余数或模存在差异。文章通过具体例子说明了在C/C++、Java和Python等不同编程环境中的表现。

8463

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



