分析C语言和python负数取模与取余的规则
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
基本概念
正数比较简单,我们不谈,只看负数,负数的情况还是比较复杂的,先来看看不同平台下负数"取模"的差异
可以看出不同平台下C语言"取模"和取商是没有区别的.再看看python环境下的.
可以发现两种语言负数求商和取余结果是不一样的. 定义中规定,余数是要大于等于0的,而C语言却计算出了负数. 结论:很显然,上面关于取模的定义,并不能满足语言上的取模运算. 因此引出了修正定义 修正定义
是什么决定了这种现象? 具体余数r的大小,本质是取决于商的,商确定了,余数自然就能确定. 而商取决于什么? 答案是,取决于除法计算的时候,结果的取整规则. 取整规则决定商的值C语言中取整规则默认是向0取整,python中默认取整规则是向下取整. 根据它们两个的规则,显然大于0的情况都是相同的,而小于0的情况是不同的,因此负数的情况下的它们的结果不相同 因为它们两的取整规则不同,而且又必须满足修订版的"取模"规则,决定了它们的计算结果现象 还有一个问题,那就是既然不同语言%符号计算的值不一样,那还是模数或余数吗?或者说取余和取模一样吗? 取模和取余不一样.定义
根据定义: C中%运算,本质是取余数. python中%运算,本质是取模. 再根据取整规则来看: 对任何一个大于0的数,对其进行0向取整和-∞取整,取整方向是一致的。故取模等价于取余 小归纳: 同符号数据相除,得到的商,根据数学同符号相消规则,一定是正数,即大于0! 大于0取整方式就是相同的. 转自https://www.cnblogs.com/DSCL-ing/p/18414566 该文章在 2024/12/10 8:52:52 编辑过 |
关键字查询
相关文章
正在查询... |