深度理解取模-创新互联

深度理解取模
  • 一.取模概念
  • 二.负数取模
  • 三.进一步的解释
  • 四.取模和取余是一样的吗?

在这里插入图片描述

创新互联企业建站,十年网站建设经验,专注于网站建设技术,精于网页设计,有多年建站和网站代运营经验,设计师为客户打造网络企业风格,提供周到的建站售前咨询和贴心的售后服务。对于成都做网站、网站制作中不同领域进行深入了解和探索,创新互联在网站建设中充分了解客户行业的需求,以灵动的思维在网页中充分展现,通过对客户行业精准市场调研,为客户提供的解决方案。一.取模概念

在这里插入图片描述
在这里插入图片描述

二.负数取模

上面的代码一目了然就不再多少啦,但如果是负数取模又该怎么办呢?

在这里插入图片描述

以上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元起,快前往官网查看详情吧


网站题目:深度理解取模-创新互联
网站链接:http://cdiso.cn/article/igjhs.html

其他资讯