Java與Python中的『%』運算符意義一樣么?
1. 取余與取模
百度百科對於取模運算做了如下定義:
對於整型數a,b來說,取模運算或者求余運算的方法都是:
1.求 整數商: c = [a/b];
2.計算模或者餘數: r = a – c*b.
求模運算和求余運算在第一步不同: 取余運算在取c的值時,向0 方向舍入(fix()函數);而取模運算在計算c的值時,向負無窮方向舍入(floor()函數)。
根據如上定義,有個結論: %
百分號運算符,在Java中是取余運算,而在Python中卻是取模運算。
舉個 -5 % 2
的例子,
-
求商:
-5/2 = -2.5
-
計算模或餘數:
對於取余,
c = fix(-2.5) // -2
r = -5 - (-2)*2
r = -1
對於取模,
c = floor(-2.5) // -3
r = -5 - (-3)*2
r = 1