负数取模
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中"/"不截尾,"//"这个才会截尾.
原因是他们除法截尾的方式不同:一种是趋零截尾,一种是趋负无穷截尾;比如在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中"/"不截尾,"//"这个才会截尾.
相关文章推荐
- Bootstrap(六) 其它内置组件
- 执行Git命令时出现各种 SSL certificate problem 的解决办法
- 利用HttpWebRequest和HttpWebResponse获取Cookie并实现模拟登录
- svn配置hook自动发布项目
- servlet开发简单Java Web项目
- spring MVC mybatis 日志问题
- java流程控制语句(一)
- 回车和换行
- ios background task 后台多任务
- 个人收入预测——决策树详解
- [编程题]树上最长单色路径
- Android平台读写i2c设备开发笔记
- 学习日记--苹果不兼容hover的研究
- EF的SqlQuery和EntitySql
- ndbcluster引擎表同步到innodb引擎报错Error 'Unknown storage engine 'ndbcluster'
- log4net 使用
- ifstat
- CVE-2015-7547溢出漏洞的简单分析与调试 glibc getaddrinfo
- 机器学习真的可以起作用吗?(1)
- 20159318 《网络攻防实践》第9周学习总结