取模與取餘的區別

2021-08-31 18:54:44 字數 591 閱讀 9844

其實取模和取餘在目標上是一致的,但是因為語言對取餘和取模上定義的不同,導致得到的結果不同。

對取餘和取模定義不同的語言中,兩者的不同點只有乙個

取餘運算在計算商值向0方向捨棄小數字

取模運算在計算商值向負無窮方向捨棄小數字

同時,也可以這樣理解:

從上面的區別可以總結出,取餘(rem)和取模(mod)在被除數、除數同號時,結果是等同的,異號時會有區別,所以要特別注意異號的情況。

下面來看一些例子

取模5 mod 3 = 2

-5 mod 3 = 1

5 mod -3 = -1

-5 mod -3 = -2

取餘5 rem 3 = 2

-5 rem 3 = -2

5 rem -3 = 2

-5 rem -3 = -2

此外,餘數在數學中的定義是始終大於等於0的,而對於某些程式語言的取餘運算不是按照上面的定義來執行的,因此才會出現餘數小於0的情況。

說了這麼多,我們在使用取模(取餘)運算時要注意的地方有乙個,當除數和被除數出現異號的情況時,程式移植的時候要特別小心,因為不同語言對取模和取餘的定義可能是不同的。

部分參考:

取模與取餘

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

取模(mod)與取餘(rem)的區別

取模 mod 與取餘 rem 的區別 matlab學習筆記 09 11 15 昨天在學習matlab的數學函式時,教程中提到取模 mod 與取餘 rem 是不同的,今天在網上具體查了一下 通常取模運算也叫取餘運算,它們返回結果都是餘數.rem和mod唯一的區別在於 當x和y的正負號一樣的時候,兩個函...

取餘和取模

對於整型數a,b來說,取模運算或者求餘運算的方法都是 1.求 整數商 c a b 2.計算模或者餘數 r a c b.但是求模運算和求餘運算在第一步不同 求餘運算在取c的值時,向0 方向捨入 int強制轉換 而取模運算在計算c的值時,向負無窮大方向捨入 floor 函式 因此,當a和b符號一致時,求...