取余运算是让商的绝对值尽可能的小,也就是向0取值。
取模运算是让商尽可能的小,向负无穷取值。
区别:都是取余数,所以区别就在商的取值倾向性不同。
举例:
取模运算
mod(-5,-2) = -1 商为2(尽可能小) 然后余数-5-(-2*2)=-1
mod(-5,2) = 1 商为-3(尽可能小) 然后余数-5-(2*-3) = 1
mod(5,-2) = -1 商为-3(尽可能小)然后余数 5-(-2*-3) = -1
mod(5,2) = 1 商为2(尽可能小)然后余数 5-(2*2) = 1
取余运算
-5%-2 = -1 商为2(向0取值,绝对值尽可能小) 余数为 -5-(-2*2) = -1
-5%2 = -1 商为-2(向0取值,绝对值尽可能小) 余数为-5-(2*-2) = -1
5%-2 = 1 商为-2((向0取值,绝对值尽可能小)余数为 5-(-2*-2) = 1
5%2 = 1 商为2((向0取值,绝对值尽可能小)余数为 5-(2*2) = 1
总结:取模运算时商尽可能小指的是,以除数绝对值为参照,商和被除数的积绝对值接近参照值并且商要尽可能小(向下取值),例如mod(5,-2)商为-2时-2*-2 = 4达参照值5临近的值有4和6这时候商还要向下取值所以商为-3,再比如 mod(5,2)商为2时2*2 = 4临界值5临近的值有4和6 商要向下取值最小只能是2。
取模和取余除数和被除数同符号时结果是一样的
网友评论