【发布时间】:2021-05-21 03:08:02
【问题描述】:
假设被除数为-4,除数为3。
根据除法定理(或除法算法),我们有 -4 = -2 * 3 + 2,因此余数是 2。
另一方面,如果我们在 java 中使用int r = (-4) % 3;,我们会得到 r = -1。我将这个结果解释为首先找到从被除数和除数的绝对值相除得到的余数,然后将被除数的符号附加到它上面。
请问我的解释是否正确?计算机究竟如何以及为什么以这种方式找到余数?如何理解这两种余数的区别?
【问题讨论】:
-
% 用于模运算。
-1相当于2以3为模。 -
这能回答你的问题吗? Difference between modulus and remainder
-
@ewong 不,不是。 % 是余数运算符,而不是模运算符。 JLS #15.17.3.
-
根据“除法定理”,-4/3 是 -1,而不是 -2,因此余数是 -1。你的算术不正确。
-
@user207421 嗨,我认为“除法定理”是指elementary number theory中的除法定理