關於求模與求餘

2021-06-19 18:29:40 字數 666 閱讀 5869

我覺得很多人搞不清楚這兩個概念的區別,剛好在翻譯lua手冊時遇到%與math.fmod這兩個操作,順便做一下說明吧。

求模與求餘的區別。

假設對a與b兩個

整數做求模或求餘操作。那麼第一步是先求整數商c,即

a / b

的值,第二步是計算模或餘數:

a - c * b

。求模與求餘的區別在於怎麼處理

a / b

的值。

求模運算時,

a / b

的結果向無窮小方向捨入,求餘運算時

a / b

的結果向

0方向捨入。

因此,求模時結果的符號與

b一致,求余時結果的符號與

a一致。 在

lua中

4%(-3)

等於-2

,由此可以看出

lua的

%是求模操作而不是求餘操作。

4/(-3)

向無窮小捨入為

-2,則模數為

4 - (-2 * -3) = -2。

在lua中math.fmod(4,-3)等於1,因此fmod是求餘操作而不是求模操作。4/(-3)向0方向捨入為-1,則餘數為4-(-1 * -3)= 1。

很容易可以得出另乙個結論:如果a,b都是正整數的話,求模與求餘沒有區別。

Mod(求模或求餘)

1.求餘 取整除後的餘數,例如 10 mod 4 2 17 mod 4 1 3 mod 4 3 4 mod 3 1 4 mod 3 1 如果a mod b是異號,那麼得出的結果符號與a相同 當然了,a mod b就相當與a a div b b 的運算。例如 13 mod 4 13 13 div 4 ...

取模和求餘的區別

參考 通常情況下取模運算 mod 和求餘 rem 運算被混為一談,因為在大多數的程式語言裡,都用 符號表示取模或者求餘運算。在這裡要提醒大家要十分注意當前環境下 運算子的具體意義,因為在有負數存在的情況下,兩者的結果是不一樣的。對於整型數a,b來說,取模運算或者求餘運算的方法都是 1.求 整數商 c...

關於負數求模運算

當我們遇到 2 3的時候,怎麼運算呢?通常乙個數m mod n 可以將m表示為 k n r 其中0 r n 1就是餘數,也是求模的結果。當m為負數的時候,這時候有兩種方法 1 先將負號提出去,直接求 m n,之後加上負號,最後還要加上n,就是最終結果了 例如 5 3 5 3 2 2 3 1 即 5 ...