求余函数和求模函数有相同的地方但又不完全一致,主要的区别在于对负整数进行除法运算的操作不同。对于整数a,b来说,求余运算或求模运算的方法都是先求整数商c=a/b,再求余数或模r=a-c*b。求余运算在取c的值时,向0方向取整(fix函数),而求模运算在计算c的值时,向负无穷方向取整(floor函数)。
rem与mod函数的区别是,当
b
≠
0
b\ne 0
b=0时,rem(a,b)=a-b.*fix(a./b),而mod(a,b)=a-b.*floor(a./b);当
b
=
0
b=0
b=0时,rem(a,0)=NaN,而mod(a,0)=a。
如果a、b符号相同,那么rem(a,b)=mod(a,b)。如果a、b符号相反,那么mod(a,b)=rem(a,b)+b。rem(a,b)的符号与a相同,而mod(a,b)的符号与b相同。例如,rem(7,4)=mod(7,4)=3;rem(-7,-4)=mod(-7,-4)=-3;rem(7,-4)=3,而mod(7,-4)=-1。
当正数与负数取余时,当得到的余数结果的符号希望跟除数(x)一样,用mod()函数;当得到的余数结果的符号希望跟被除数(y)一样,用rem()函数