美文网首页
取余和取模的区别

取余和取模的区别

作者: 默写年华Antifragile | 来源:发表于2018-07-25 18:07 被阅读145次

对整数a,b取余和取模统一都分为2步:
第一步:求整数商, c = a / b
第二步:计算模或余数,r = a - c * b
这里,第二步对于取余还是取模都是相同的,因为减法和乘法一般不会带来误差;但是对于第一步,除法会带来误差,取余在计算c时是向0的方向舍入的,比如-1/5=-0.2,于是向0取整得0,因此余数 r1 = -1 - 0 * 5 = -1;但是取模在计算c时是向负无穷大方向舍入的,即上面的-0.2会取整为-1,因此模 r2 = -1 - (-1) * 5 = 4;
因此,对于两个数都是正数来说,没有差别,因为0和负无穷大在小数c的同一个方向上;但是对于存在一个负数的情况下,0的方向和负无穷大在c的两个相反的方向,因此就有差别。

“当我们赋给无符号类型一个超出它表示范围的值时,结果是初始值对无符号类型表示数值总数取模后的余数。例如, 8比特大小的unsigned char 可以表示0 至 255 区间内的值,如果我么赋值给此类型变量一个区间以外的值,则实际的结果是该值对256取模后所得的余数。因此,把 -1 赋值为8比特大小的unsigned char 所得的结果是255”

相关文章

  • java 中的除法与取余

    一、取余?取模? 首先区别一下取模运算(Modulo Operation)和取余运算(Complementatio...

  • 取余和取模的区别

    对整数a,b取余和取模统一都分为2步:第一步:求整数商, c = a / b第二步:计算模或余数,r = a - ...

  • 取模

    取模和求余主要区别在负数。 c语言中求余,-1%255=-1;python中取模,-1%255=254.

  • 取模和取余

    近日在读C++ Primer第五版,在2.1.2类型转换一节中,有这样一个例子: 当看到255这个值,一脸蒙圈,为...

  • 取模和取余

    整数 a 和 bMOD 和 REM 的计算都分两步: c = a / b r = a - (c * b) 不同之处...

  • 取余和取模

    参考链接:https://blog.csdn.net/nishiwodebocai21/article/detai...

  • 取模和取余 居然不一样!!!

    其实取模和取余在目标上是一致的,但是因为语言对取余和取模上定义的不同,导致得到的结果不同。 对取余和取模定义不同的...

  • “求余”和“取模”的区别

    昨天在与同班学员的讨论中,对Java中的“%”符号到底是“求余”还是“取模”产生了疑问。通过百度发现这两种运算确实...

  • Swift 关于取余或取模的方法truncatingRemain

    Swift5关于取余或取模的方法truncatingRemainderSwift5 不支持 % 来取模(取余)使用...

  • 取模运算理解

    取模运算 背景 取模运算(mod)和取余运算(rem)两个概念有重叠的部分,但又不完全一致;主要区别在于对负整数进...

网友评论

      本文标题:取余和取模的区别

      本文链接:https://www.haomeiwen.com/subject/cllmmftx.html