取模運算和取餘運算
取模運算(
modulo operation
)和取餘運算
complementation
)兩個概念有重疊的部分但又不完全一致。
主要的區別在於對負整數進行除法運算時操作不同。
取模主要是用於
計算機術語中。
取餘則更多是數學概念。
模運算在數論和程式設計中
都有著廣泛的應用,
從奇偶數的判別到素數的判別,
從模冪運算到最
大公約數的求法,
從孫子問題到凱撒密碼問題,
無不充斥著模運算的
身影。雖然很多數論教材上對模運算都有一定的介紹,
但多數都是以
純理論為主,
對於模運算在程式設計中的應用涉及不多。
對於整型數ab
來說,取模運算或者求餘運算的方法都是:1.求
整數商:
c = a/b;
2.計算模或者餘數:
r = a - c*b.
求模運算和求餘運算在第一步不同
取餘運算在取
c的值時,向
方向捨入
(fix()
函式;而取模運算在計算
c的值時,向負無窮方向
捨入(floor()
函式例如計算:
-7 mod 4
那麼:a = -7
b = 4
第一步:求整數商
c,如進行求模運算
c = -2
(向負無窮方向舍
入),求餘
c = -1
(向方向捨入);
第二步:
計算模和餘數的公式相同,但因c
的值不同,
求模時r =
,求余時
r = -3
辨析取模運算與取餘運算
通常情況下,取模運算 mod 和取餘運算 rem 被混為一談,因為在大多數的程式語言裡,都用 符號來表示取模運算或者取餘運算。所以有必要編寫本文件,來為在此環節遇到問題的程式設計師理清思路,同時也提醒各位需要注意在不同程式語言環境下 運算子的具體意義,因為在有負數存在的情況下,兩者的結果是不一樣的。...
Java中的取餘運算和取模運算
通常取模運算也叫取餘運算,他們都遵循處罰法則,返回結果都是餘數 但是仔細看是不一樣的,詳細請看例項 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 運算被混為一談,因為在大多數的程式語言裡,都用 符號表示取模或者求餘運算。在這裡要提醒大家要十分注意當前環境下 運算子的具體意義,因為在有負數存在的情況下,兩者的結果是不一樣的。對於整型數a,b來說,取模運算或者求餘運算的方法都是 1.求 整數商 c a ...