十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
上面的代码一目了然就不再多少啦,但如果是负数取模又该怎么办呢?
以上a/b=-3是很好理解的,那为什么取模后的值是-1呢?我们先放置一下,看看在python语言中负数取模的值
我们可以看到在不同的语言中,取模和取整的结果竟然是不同的,为什么会出现这样的情况呢?很明显,以上关于取模的定义并不能满足语言上取模的运算
三.进一步的解释c语言和python语言中取模和除的结果不同归根结底是解释不同。-10可以等于3乘以-3再减一;也可以等于3乘以-4再加2。
从上可以看出,其实余数的大小是取决于商的大小,而商的大小又取决于取整规则(如果不明白取整的4种方法的可以看看这篇博客 取整规则)。
在c语言中,默认取整方式是零向取整,故-10/3=-3。而在pythen中,默认取整方式是地板取整,故-10/3=-4。
而有根具以上取模的定义,很快就能求出余数的大小
取余:尽可能的让商,进行零向取整
取模:尽可能让商向负无穷方向取整
故在c语言中 % 本质其实是取余(我上文一直说取模是为了方便理解),而在python中 % 的本质才是取模(我们今后也可以根据这个特征来判断语言所使用的是取模还是取余)
结论:本质上是不一样的(尽管它们在大部分时候是一样的)
为什么它们两个在大多数情况下又是一样的呢?
这是因为如果都是正数或者负数的话无论是零向取整还是向负无穷方向取整,它们的商都是小于它原本的除值,例如 10/3=3.33333,它们取整后都为3,所以两者大小是相等的
结论:参与取余的两个数,如果同符号,那么取余等于取模
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧