Java % (取模)運算
阿新 • • 發佈:2019-01-24
取模怎麼算
取模運算實際上是計算兩數相除以後的餘數。假設 q 是 a、b 相除產生的商(quotient),r 是相應的餘數(remainder),那麼在幾乎所有的計算系統中,都滿足:
a = b x q + r,其中 |r|<|a|。
因此 r 有兩個選擇,一個為正,一個為負;相應的,q 也有兩個選擇。如果a、b 都是正數的話,那麼一般的程式語言中,r 為正數;或者如果 a、b 都是負數的話,一般 r 為負數。但是如果 a、b 一正一負的話,不同的語言則會根據除法的不同結果而使得 r 的結果也不同,但是一般 r 的計算方法都會滿足:
r = a - (a / b) x b
C/Java 取模
大多數語言的處理方式都與 C/Java 一致,採用了 truncate 除法。所以在 C/Java 語言中:
-17 % 10 的計算結果如下:r = (-17) - (-17 / 10) x 10 = (-17) - (-1 x 10) = -7
17 % -10 的計算結果如下:r = 17 - (17 / -10) x (-10) = (17) - (-1 x -10) = 7
-17 % -10 的計算結果如下:r = (-17) - (-17 / -10) x (-10) = (-17) - (1 x -10) = -7
可以看出:運算結果的符號始終和被模數的符號一致