Java与Python中的‘%’运算符意义一样么?

1. 取余与取模

百度百科对于取模运算做了如下定义:

对于整型数a,b来说,取模运算或者求余运算的方法都是:
1.求 整数商: c = [a/b];
2.计算模或者余数: r = a - c*b.
求模运算和求余运算在第一步不同: 取余运算在取c的值时,向0 方向舍入(fix()函数);而取模运算在计算c的值时,向负无穷方向舍入(floor()函数)。

根据如上定义,有个结论: %百分号运算符,在Java中是取余运算,而在Python中却是取模运算。

举个 -5 % 2的例子,

  1. 求商: -5/2 = -2.5

  2. 计算模或余数:

对于取余,
c = fix(-2.5) // -2
r = -5 - (-2)*2 
r = -1
  
对于取模,
c = floor(-2.5) // -3
r = -5 - (-3)*2
r = 1

2. 程序验证

posted on 2021-04-20 20:30  小螺号giao~giao~giao  阅读(735)  评论(0编辑  收藏  举报