首页 > 其他 > 详细

模运算

时间:2015-01-17 19:16:51      阅读:293      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!