取模(
mod
)与取余(
rem
)的不同:
通常取模运算也叫取余运算,它们返回结果都是余数
.rem
和
mod
唯一的区别在于
:
当
x
和
y
的正负号一样的时候,
两个函数结果是等同的;
当
x
和
y
的符号不同时,
rem
函数结果的符号和
x
的一样,而
mod
和
y
一样。
这是由于这两个函数的生成机制不同,
rem
函数采用
fix
函数,而
mod
函数采用了
floor
函数(这两个函数是用来取整的,
fix
函数向
0
方向舍入,
floor
函数向无穷小方向舍入)。
rem
(
x
,
y
)命令返回的是
x-n.*y
,如果
y
不等于
0
,其中的
n = fix(x./y)
,而
mod(x,y)
返
回的是
x-n.*y
,当
y
不等于
0
时,
n=floor(x./y)
两个异号整数取模取值规律
(当是小数时也是这个运算规律,这一点好像与
C
语言的
不太一样)
先将两个整数看作是正数,再作除法运算
①能整除时,其值为
0
②不能整除时,其值
=
除数
×
(
整商
+1)-
被除数
例:
mod(36,-10)=-4
即:
36
除以
10
的整数商为
3
,
加
1
后为
4
;
其与除数之积为
40
;
再与被数之差为
(
40-36=4
)
;
取除数的符号。所以值为
-4
。
例:
mod(9,1.2)=0.6
例:
>> mod(5,2)
ans =1
%“
除数
”
是正,
“
余数
”
就是正
>> mod(-5,2)
ans =1
>> mod(5,-2)