首先,我们先看一些正数的除法
res1 = 6 / 4 #6除以4
print(res1) #输出:1.5
res2 = 6 // 4 #6除以4取商
print(res2) #输出:1
res3 = 6 % 4 #6除以4取余数
print(res3) #输出:2
#以上是小学的数学知识
再来看下负数的除法
res4 = -6 / 4
print(res4) #输出:-1.5
res5 = 6 / -4
print(res5) #输出:-1.5
res6 = -6 / -4
print(res6) #输出:1.5
#以上应该是初中的数学知识
#负数的除法这个大家都能看懂,被除数和除数有负数,结果就为负;负负为正.
下面引入地板除(也就是商)和余数
#注意:在Python当中的地板除是向下取整的
res7 = -6 // 4
print(res7) #输出:-2
#-6除以4结果为-1.5(res4输出可以得出),向下取整,也就为-2(-1.5>-2,所以向下取整为-2)
res8 = 6 // -4
print(res8) #输出:-2
#6除以-4结果为-1.5(res5输出可以得出),向下取整,也就为-2(-1.5>-2,所以向下取整为-2)
res9 = -6 // -4
print(res9) #输出:1
#-6除以-4结果为1.5(res6输出可以得出),向下取整,也就是1.
接下来再看余数的运算
res10 = -6 % 4
print(res10) #输出:2
#在res7上我们得到了-6除以4的商为-2,要得到余数=被除数-除数*商
#也就是:-6-4*(-2)=-6+8=2
res11 = 6 % -4
print(res11) #输出:-2
#同理:6除以-4的商为-2,6-(-2)*(-4)=-2
res12 = -6 % -4
print(res12) #输出:-2
#-6除以-4的商为1,所以-6-(-4)*1=-2
总结:我们在做求商和取余时候,记住一句话:Python当中的地板除是向下取整的.
在 Python 和 C++ 中,a % b
的计算方式是一样的,都遵循了标准的取模运算规则。对于取模运算,正负操作数的处理方式是一样的,没有很大的区别。
取模运算的定义如下:
- 对于两个正整数
a
和b
,a % b
的结果是a
除以b
的余数。 - 对于两个负整数
a
和b
,a % b
的结果也是a
除以b
的余数。 - 对于一个正整数
a
和一个负整数b
,a % b
的结果是a + |b|
的余数。 - 对于一个负整数
a
和一个正整数b
,a % b
的结果也是a + |b|
的余数。
其中,|b|
表示 b
的绝对值。这个规则适用于 Python 和 C++ 的取模运算。
因此,无论 a
和 b
的符号如何,a % b
的结果都是相同的。