您的位置:首页 > 其它

负数取模

2016-04-27 11:08 260 查看
在编程当中难免会用模来写一些算法,其实模就是一个数除以另一个数的余数,但是在不同的编程语言中取模得到的值会不同,比如-3%5在c/java/c#中值是-3,在lua/pyhton中值是2;这是为什么呢?

原因是他们除法截尾的方式不同:一种是趋零截尾,一种是趋负无穷截尾;比如在c中取模值的过程是这样的:-3%5=-3 - (-3/5)*5 = -3 - 0*5 = - 3;这种就是用趋零截尾的除法;

而在lua中:-3%5 = -3 - (-3/5) * 5 = -3 - (-1) * 5 = 2;这是趋负无穷截尾;特别提示:在Python 3.x中"/"不截尾,"//"这个才会截尾.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: