1. 程式人生 > >淺談取餘運算%

淺談取餘運算%

在複習到java中取餘與算符%時,書上寫到 只有當被除數時負數時。餘數才是負的。
但是為什麼呢?
維基百科關於餘數的定義:

如果a 與d 是整數,d 非零,那麼餘數r 滿足這樣的關係: a = qd + r , q 為整數,且0 ≤ |r| < |d|。 當這樣定義時,可能導致兩種可能的餘數。例如,除法式子(−42) / (−5)的可以表達為 −42 = 9×(−5) + 3(在數學工作者中使用較多) 或 −42 = 8×(−5) + (−2). 即餘數可能是3或−2。 這種對餘數不明確的定義可能導致嚴重的計算問題,對於處理關鍵任務的系統,錯誤的選擇會導致嚴重的後果。在一些組合語言系統中,會有特殊的除法指令,設定餘數和被除數同號。

所以,不同的計算方法餘數會不一致,就像百科中所說,許多語言規定,餘數與被除數同號。