1. 程式人生 > >C語言中關於除法和取餘的理解

C語言中關於除法和取餘的理解

C語言除法運算子“/”和求餘運算子“%”
   看似兩個很簡單的運算子,卻也真要掌握用好它也不容易,本文作為關於此類運算子的各方面的問題的彙總,希望對你我都有一些幫助。

   除法運算子“/”。二元運算子,具有左結合性。參與運算的量均為整型時,結果為整型,捨去小數。如果運算量中有一個為實型,結果為雙精度實型。

例如:

5/2=2,1/2=0

5/2.0=2.5   

        求餘運算子“%”,二元運算子,具有左結合性。參與運算的量均為整型。求餘運算的結果等於兩個數相除後的餘數

例如:

5%2=1,1%2=1

5%2.0和5.0%2的結果是語法錯誤


轉:當前面的數小於後面的數時

其實求餘運算可以看成
a%b=a-(int)(a/b)*b

1%2=1
2%5=2

a % b
如果a<b的話,這樣的商為0,餘數就是a


哈,這個關係表示式a%b=a-(int)(a/b)*b 又是這麼解釋的
先運算(a/b)然後a-(a/b的值)然後乘以b
例1.
100除以2=50
結果為整數 則取值為0 (原因就是100除以2的值是整數,不是50.…………幾)
例2.
9除以2=4.5
則還是用4乘以2=8
再用9-8 結果就是餘數

轉:在C語言中,-3/16,16/-3,-3%16,16%-3的值各為多少?

除號的正負取捨和一般的算數一樣,符號相同為正,相異為負
求餘符號的正負取捨和被除數符號相同
-3/16=0     16/-3=-5     -3%16=-3      16%-3=1