Python学习笔记(八)—Python和Java(C/C++)的除法与取模的区别

转载请注明出处:http://blog.csdn.net/sinat_14849739/article/details/78386846
本文出自Shawpoo的专栏
我的简书:简书

【Python学习笔记专栏】:http://blog.csdn.net/column/details/17658.html

举例

我们都知道在数学中除法计算是这样的:

被除数(a) ÷ 除数(b) = 商(q)……余数(r)

由上述公式可以得出:

被除数 = 商 * 除数 + 余数,即:a = b * q + r

有了公式之后,我们可以得出结果:如:

10 ÷ 3 = 3……1
10 ÷ (-3) = -3……1
10 ÷ (-3) = -4……-2
-10 ÷ 3 = -3……-1
-10 ÷ 3 = -4……2
-10 ÷ (-3) = 3……-1

我们上述这些计算都符合a = b * q + r,那么例如这种a ÷ (-b)或者-b ÷ a有两种结果的情况下,我们该取哪个值呢?

编程中的除法

编程中的除法分为三种:

  • 向上取整:即在所有计算的结果中,取最接近+∞的那个值为最终的商。如10 ÷ (-3) = -3……1而不是10 ÷ (-3) = -4……-2。

  • 向下取整:同理,在所有计算的结果中,取最接近-∞的那个值为最终的商。如-10 ÷ 3 = -4……2而不是-10 ÷ 3 = -3……-1。

  • 向零取整:即,在所有计算的结果中,取最接近0的那个值为最终的商。

经过推理运算和查阅书籍发现:

Java、C/C++遵循的取整方式为:向零取整
Python遵循的取整方式为:向下取整

所以:

  • Java(C/C++) :
整除取模(求余)
10 / 3 = 310 % 3 = 1
10 / -3 = -310 % -3 = 1
-10 / 3 = -3-10 % 3 = -1
-10 / -3 = 3-10 % -3 = -1
  • Python :
整除取模(求余)
10 // 3 = 310 % 3 = 1
10 // -3 = -410 % -3 = -2
-10 // 3 = -4-10 % 3 = 2
-10 // -3 = 3-10 % -3 = -1
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值