取余和取模

之前我的认知里一直以为取余和取模是一回事,直到那天他们在讨论关于这个,才意识到并不是这样,这里进行总结一下。

在数学里面,我们接触到的余数都是大于0的,但在编程中,就会存在有正有负的情况。编程中,这两种计算的机制不同,Mod采用fix函数,Rem采用floor函数,这两函数都是用来取整的,fix向0方向舍入,floor向无穷小方向舍入。
取模(Mod)和取余 (Rem)我们都是用 " % "来表示
首先,他们的区别是:

取余:向0方向舍弃小数位,遵循尽可能让商大的原则。
取模:向负无穷方向舍弃小数位,遵循尽可能让商小的原则。

在商和除数同号时,取模和取余 的结果是相同的。
看几个栗子:

取余取模
3%211
-3%-2-1-1
-3%2-11
3%-21-1

总结:取余运算的结果正负性和除数保持一致,取模运算结果和被除数保持一致。

不同编译语言对应的"%"所代表的含义不同,

取模运算python
取余运算C/C++、C#、Java、Golang、PHP

因此在程序移植时我们要注意到这一点。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值