前几天,一个小姐姐问我取余和取模有什么区别,我当时第一反应就是二者是一样的,但是小姐姐咬死说不一样。我去百度了一下还真的不一样。脑壳疼,我当初误导了多少人。所以为了帮助我记忆也为了帮助预防我误人子弟
在C语言中对于整型数a,b来说,取模运算或者求余运算的方法都是:
第一步,求整数商: c = a / b;
第二步,计算模或者余数: r = a - c * b.
那么差异在哪呢?其实在第一步
取余运算在计算c的值时,向 0 方向舍入;
取模运算在计算c的值时,向 –∞ 方向舍入。
所谓向0方向舍入,就是以小数点为界限,直接将小数部分去掉。如(Int)-1.324=-1(亦叫截断法);
与之相对的向 –∞ 方向舍入,就是最终结果比真实值更小。如(Int)-1.324=-2;(int此处是强制转换数据类型)
所以我们用到%是取余运算。(我一直没明白取模运算有什么用)