求余VS取模,傻傻分不清


在计算机运算中,求余和取模都用“%”,大多数情况下可以混为一谈,但当有负数存在的时候,两者的运算规则却不一样。

首先要明确的是,不管是求余还是取模,对c=a%b,都可以用抽象为以下两步:

1. 求整数商: c = a/b;
2. 求模或余数: r = a - c*b;

其次就是它俩的区别了,区别在于第一步,求整数商:

  • 对于求余运算:求整数商的时候,偏向正无穷取整;
  • 对于取模运算:求整数商的时候,偏向于负无穷取整;

什么意思呢?

举个例子:

假设 a = -2, b = 3, 求余运算取整数商为 c = 0,取模运算取整数商为c = -1; 最终执行第二步,求余结果为-2,取模结果为1。

知识共享许可协议本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。
本站文章除注明转载/出处外,均为本站原创或翻译,请务必在遵守许可协议的前提下转载。
发布时间:2019-08-01 15:06:03 阅读:78 标签:技术