码迷,mamicode.com
首页 > 其他好文 > 详细

模运算

时间:2015-01-17 19:18:47      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:

Turbo Pascal对mod的解释是这样的:
  A Mod B=A-(A div B) * B (div含义为整除)

这个定义本身很清晰,问题出在对于整除的理解上。在C/C++语言里,整除都是像0靠拢:这里的逻辑是,比如1 / 2 = 0.5,为了增加机器执行的效率,最

好的方式就是直接把小数部分去掉,得到0。这在1 / -2的时候显得不是很合适,因为仍旧偷懒把小数部分去掉,得到0。而mod运算在C/C++里面也是严格按照

上述公式执行的1 % -2 = 1

接触python之后发现,python语言里,整除都是向负无穷靠拢,这更符合数学上的定义。于是 1 / - 2 = -1, 1 % -2 = -1。python里把这种处理办法叫做所谓的

floor divide,很生动。后续的python更新中将不再采用这种方式,而是使用真正的除法,有需要时直接得到浮点的结果。地板除以//运算符的方式呈现。

模运算

标签:

原文地址:http://www.cnblogs.com/hustxujinkang/p/4230766.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!