在复习到java中取余与算符%时,书上写到 只有当被除数时负数时。余数才是负的。
但是为什么呢?
维基百科关于余数的定义:
如果a 与d 是整数,d 非零,那么余数r 满足这样的关系: a = qd + r , q 为整数,且0 ≤ |r| < |d|。 当这样定义时,可能导致两种可能的余数。例如,除法式子(−42) / (−5)的可以表达为 −42 = 9×(−5) + 3(在数学工作者中使用较多) 或 −42 = 8×(−5) + (−2). 即余数可能是3或−2。 这种对余数不明确的定义可能导致严重的计算问题,对于处理关键任务的系统,错误的选择会导致严重的后果。在一些组合语言系统中,会有特殊的除法指令,设定余数和被除数同号。
所以,不同的计算方法余数会不一致,就像百科中所说,许多语言规定,余数与被除数同号。