“%”取模/取余是不同的

本文探讨了Python中"%"运算符执行的是取模操作,而Java/C/C++中则是取余操作。两者主要区别在于取整方式,取模时向负无穷取整,取余则向0取整。通过实例-7和4说明了两者计算结果的不同。

今天才注意到取模和取余是不同的操作,“%”这个运算符在Python中是取模,而在Java/C/C++是取余。

具体来说,两者的计算方法都是如下:
[第一步] c=取整(a/b)c=取整(a/b)c=(a/b)
[第二步] r=a−b×cr=a-b\times cr=ab×c
两者的区别主要在于取整的方法,即:

  • 取模时,取整操作是向负无穷方向取整,例如-1.xxxx会被取整为-2。
  • 取余时,取整操作是向0的方向取整,例如-1.xxxx会被取整为-1。

用一个例子来说明,-7和4作为操作数,
取模:c=取整(−7/4)=取整(−1.75)=−2c=取整(-7/4)=取整(-1.75)=-2c=(7/4)=(1.75)=2r=−7−4×(−2)=1r=-7-4\times (-2)=1r=74×(2)=1
取余:c=取整(−7/4)=取整(−1.75)=−1c=取整(-7/4)=取整(-1.75)=-1c=(7/4)=(1.75)=1r=−7−4×(−1)=−3r=-7-4\times (-1)=-3r=74×(1)=3

在Python中,“%”是取模。
在Java/C/C++中,“%”是取余。(Java可以用Math.floorMod()取模)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值