今天看书,遇到一个挺有意思的东西是之前没有留意的,也挺拗口的,先记录下来。
之前只知道"div"和"mod",它们的作用分别是取整和求余,今天又发现两个类似的关键字,它们分别是'rem'和'quot',作用与"div"和"mod"似乎差不多。其介绍如下图中所示:
好像看不懂?算了,英文不好,看不太懂,还是自己研究一番。为了更好的说明这两者之间的差别,我引入stackoverflow上的一题
(x ‘quot‘ y)⋆y + (x ‘rem‘ y) == x (x ‘div‘ y)⋆y + (x ‘mod‘ y) == x
x = -20;
y = 3
其具体的计算过程如下:
(x `quot` y) * y + (x `rem` y) => -6 * 3 + (-2) => -20 (x `div` y) * y + (x `mod` y) => -7 * 3 + 1 => -20
"div"和"quot"的区别是,"div"向下取整(向无穷小),而"quot"则是向零取整(0方向,正数向下,负数向上)。
"rem"和"mod"的区别则是求余和求膜之间的区别。譬如在这里的(-20)/3,他的结果是(-6.666…),"rem"直接舍去小数为得(-6),其余数为:(-20)-3*(-6)=-2;"mod"则有点区别,它需要先向无穷小(向下)取整得(-7),然后才得到余数:(-20)-3*(-7)=1。
搞清楚这两点之后,再看看介绍的那个图,什么呀,人家早已经说了?