取餘運算與取模運算 (Complementation vs Modulo )

概念

對於整數a,b來說,取模運算或者求餘運算的方法要分如下兩步:

1.求整數商:c = a / b

2.計算模或者餘數:r = a - (c * b)

區別在於:第一步對c值的小數取向的不同

取餘運算(Complementation):在計算商值向0方向捨棄小數位

取模運算(Modulo):在計算商值向負無窮方向捨棄小數位

 

例如

a (Dividend) b (Divisor) c 向0方向捨棄小數位 c*b 取餘 向負無窮方向捨棄小數位 c*b 取模
5 3 1.67  1 3 2 1 3 2
5 -3 -1.67  -1 3 2 -2 6 -1
-5 3 -1.67  -1 -3 -2 -2 -6 1
-5 -3 1.67  1 -3 -2 1 -3 -2

 

代碼

在不同的語言中 % 代表的意義不同:C語言中爲取餘運算;Python中爲取模運算

IAR C99標準

Python3.6.5

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章