Matlab中有两个取余数的运算,分别为rem(x,y)和mod(x,y)。他俩本质上都是取余数,但是叫法和用法不同。
rem(x,y)叫取余运算,mod(x,y)叫取模运算。
rem函数采用fix函数,而mod函数采用了floor函数(fix函数向0方向舍入,floor函数向无穷小方向舍入)。
当x和y同号时:
即除数与被除数的符号一致时,rem(x,y)和mod(x,y)的结果相同。
当x和y为异号时:
即除数与被除数的符号相反时,rem(x,y)结果的符号与x一致,而mod(x,y)的符号与y一致。
rem(x,y)取值:
先将两个整数看作是正数,再作除法运算
①能整除时,其值为0
②不能整除时,其值=与x符号相同的余数
mod(x,y)取值:
先将两个整数看作是正数,再作除法运算
①能整除时,其值为0
②不能整除时,其值=除数×(整商+1)-被除数,再与y同符号.
如:
rem(16,-10)
先将其均看成整数,得商1余6
将6与x即16同号,的结果为6
mod(16,-10)
先将其均看成整数,得商1余6
除数×(整商+1)-被除数=10×(1+1)-16=4
j将4与y即-10同号,为-4