取模運算和取余運算是兩個概念,雖然他們有重疊部分,但又不一致。不一致的地方在於對負整數進行除法時,操作不一樣。
對於整數 a 和 b,進行取模運算和取余運算可以總結分為 2 個步驟:
1. 計算整數商: c = 取整(a / b);
2. 計算模或余數:r = a - c * b .
兩者的區別就在於第 1 步中的計算整數商不同,取模是向負無窮方向取整(即向下取整),取余是向 0 方向取整(即商大於 0 時向下取整,小於0時向上取整)。
Python3 中兩個運算實現方式:
1 # 取模,Python中可直接用%,計算模,r = a % b 2 def mod(a, b): 3 c = a // b 4 r = a - c * b 5 return r 6 7 # 取余 8 def rem(a, b): 9 c = int(a / b) 10 r = a - c * b 11 return r