在java中的 % 實際上是取余。
下面為數學概念上的取余和取模:
對於整型數a,b來說,取模運算或者求余運算的方法都是:
1.求 整數商: c = a/b;
2.計算模或者余數: r = a - c*b.
求余和求模的區別:
取余:在第一步求c的時候,c向負無窮方向舍入(向0取整)。
取模:在第一步求c的時候,c向0方向舍入(向下取整)。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
例如:
-7Mod4:
a=-7 , b= 4;
求余: c=-7/4=-1 (-1.75向0取整為-1)
r=-7-(-1*4)=-3
求模: c=-7/4=-2 (-1.75向下取整 )
r=-7-(-2*4)=1
歸納:當a,b的符號一致時,所得的c 是一樣的,所以結果也一樣
當a,b的符號不一致的時候,求模時的 c 的符號與 b 一致,求余的符號與 a 一致
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
在java中 % 的實際意思是 取余,所以求余的時候,只看a的符號,也是就%左邊的那個數字的符號
在其他語言中 % 的意思也有取模的意思,例如 python