在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