c语言去摸运算的本质

文章来自:http://blog.csdn.net/yingbinchina/article/details/2715549

数学中的 余数(remainder) 其实就是 取模(mod),即:

 x mod y = x%y
 x%y     = x - y[x/y], for y!=0.

数学中的余数概念和我们的计算机中的余数概念一致,但实现却不一致。
其中 [x/y] 代表的是 x/y 的最小下界。

例:

   数学中的算法实现:
     -3 mod 2         = -3 - 2*[-3/2]
                            = -3 - 2*[-1.5]
                            = -3 - 2*(-2)
                            = -3 + 4
                            = 1
  计算机的算法实现:
         -3%2          = -3 - 2*(-3/2)
                            = -3 - 2*(-1)
                            = -3 - (-2)
                            = -1
所以计算机中的取余实际上是:
       x%y = x - y(x/y), for y!=0.

总结:

对于正数,二者(指数学实现、计算机实现)计算出的结果是相等的,但是负数就不相等了。这就意味着,如果以后在使用数学中余数相关定理的时候,要注意计算机中余数的计算和数学定义不是完全一致的,所以在计算机上,对于负数,数学定理并不完全适用。当然,对于正数,二者是没有区别的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值