在c語言中對於整型數a,b來說,取模運算或者求餘運算的方法都是:
第一步,求整數商: c = a / b;
第二步,計算模或者餘數: r = a - c * b.
那麼差異在哪呢?其實在第一步
取餘運算在計算c的值時,向 0 方向捨入;
取模運算在計算c的值時,向 –∞方向捨入。
所謂向0方向捨入,就是以小數點為界限,直接將小數部分去掉。如(int)-1.324=-1(亦叫截斷法);
與之相對的向 –∞方向捨入,就是最終結果比真實值更小。如(int)-1.324=-2;(int此處是強制轉換資料型別)
所以我們用到%是取餘運算。(我一直沒明白取模運算有什麼用)
取模與取餘
通常情況下取模運算 mod 和求餘 rem 運算被混為一談,因為在大多數的程式語言裡,都用 符號表示取模或者求餘運算。在這裡要提醒大家要十分注意當前環境下 運算子的具體意義,因為在有負數存在的情況下,兩者的結果是不一樣的。對於整型數a,b來說,取模運算或者求餘運算的方法都是 1.求 整數商 c a ...
C 中的取餘與取模
目前為止,我並沒有找到c 中數學意義上的取模操作。是一種取餘運算。假設r a mod b,關於取模與取餘的一點概念有 那麼,c 中什麼時候會用到取模?在型別轉換時,當把乙個超出範圍的值v賦給乙個無符號型別時,其計算方法是 先確定無符號型別的可取數n 最終結果 v mod n 比如,把 1賦值給uns...
取模與取餘的區別
其實取模和取餘在目標上是一致的,但是因為語言對取餘和取模上定義的不同,導致得到的結果不同。對取餘和取模定義不同的語言中,兩者的不同點只有乙個 取餘運算在計算商值向0方向捨棄小數字 取模運算在計算商值向負無窮方向捨棄小數字 同時,也可以這樣理解 從上面的區別可以總結出,取餘 rem 和取模 mod 在...