通常取模運算也叫取餘運算,他們都遵循處罰法則,返回結果都是餘數;
但是仔細看是不一樣的,詳細請看例項:
1.取餘
rem(3,2)=1
rem(-3,-2)=-1
rem(3,-2)=1
rem(-3,2)=-1
2.取模
mod(3,2)=1
mod(-3,-2)=-1
mod(3,-2)=-1
mod(-3,2)=1
由此可以看出,rem和mod是有符號區別的!
當除數與被除數的符號相同時,rem和mod的結果是完全相同的;當除數與被除數的符號不相同時,結果不同。
具體說,rem結果的符號與被除數相同;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) * 4 = 13 -12 = 1
(異號求餘規則:a % b = c, 則c的值為:|a| % |b|的結果,讓這個結果與a同號,然後再和b相加。比如:|-15| % |4| = 3,
然後-3 + 4 = 1, 如果是15 % (-4), 則結果為 3 + (-4) = -1, 注意,一定是兩個數異號時才是這種規則,同號跟一般的演算法相同)
2. 求模:
規定"a mod b"的b不能為負數,其運算規則如下:
1) 當a > b時,不斷從a中減去b,直到出現了乙個小於b的非負數
例如:8 mod 3 = 2
2) 當a < b, 且 a > 0時,結果為a。
例如:3 mod 8 = 3
3) 當a < b, 且 a < 0時,則b不斷的加到a上,直到結果是乙個小於b的非負數為止
例如: -3 mod 4 = 1, -4 mod 3 = 2
注意:當a、b全為正數時,無論是"求餘"還是"求模",得到的結果是相同的。如:22 mod 6 = 4, 只有當a < 0時,兩種運算結果不同。
例如:n為四位數7341, 可用下面的方法分離出它的個、十、百、千位。
7431 mod 10 =1 (個位數)
(7431 mod 100) div 10 = 4 (十位數)
(7431 mod 1000) div 100 = 3 (百位數)
7431 div 1000 =7 (千位數)
此外,利用 a mod b,可以判斷a能否被b整除。當a mod b = 0時,a能被b整除。
注:求模可看成是定位,如定位到個位,0定位到百位。div可以看成是求該位確定數。
python模運算求餘 取模運算和取餘運算
取模運算和取餘運算 取模運算 modulo operation 和取餘運算 complementation 兩個概念有重疊的部分但又不完全一致。主要的區別在於對負整數進行除法運算時操作不同。取模主要是用於 計算機術語中。取餘則更多是數學概念。模運算在數論和程式設計中 都有著廣泛的應用,從奇偶數的判別...
取模運算和求餘運算的區別
通常情況下取模運算 mod 和求餘 rem 運算被混為一談,因為在大多數的程式語言裡,都用 符號表示取模或者求餘運算。在這裡要提醒大家要十分注意當前環境下 運算子的具體意義,因為在有負數存在的情況下,兩者的結果是不一樣的。對於整型數a,b來說,取模運算或者求餘運算的方法都是 1.求 整數商 c a ...
取模運算和求餘運算的區別
通常情況下取模運算 mod 和求餘 rem 運算被混為一談,因為在大多數的程式語言裡,都用 符號表示取模或者求餘運算。在這裡要提醒大家要十分注意當前環境下 運算子的具體意義,因為在有負數存在的情況下,兩者的結果是不一樣的。對於整型數a,b來說,取模運算或者求餘運算的方法都是 1.求 整數商 c a ...