取余和取模的区别
取余%
和 取模 mod
两种运算,既有相同之处也有不同的地方
a % b
和 a mod b
的公式都为 result = a - b * c ;c = a / b (b ≠ 0);
两者的区别是 在于 c
的计算方式
在 a % b
时 ,c
的结果向零取整,如 a = 36, b = -10 则 c=-3
;
在 a mod b
时,c
的结果向负无穷取整,如 a = 36, b = -10 则 c=-4
因为比 -3.6
小的最接近的一个整数是 -4
;
所以 有如下的运算
36 % -10 = 36 - (-10) * c = 36 - (-10) *(-3) = 36 -30 = 6
,结果为 6
36 mod 10 = 36 - (-10) * c = 36 - (-10) * (-4) = 36 -40 = -4
,结果为 -4
更一般的规律
在 取余(%)
运算中,运算结果的符号和被除数(a)保持一致,即 a
为正,运算的结果就为正, a
为负,运算的结果就为负
在 取模(mod)
运算中,运算结果的符号和除数(b)保持一致,即 b
为正,运算的结果就为正, b
为负,运算的结果就为负
在 java
中的运行结果
1 | public static void main(String[] args) { |
You need to set
install_url
to use ShareThis. Please set it in _config.yml
.