取餘運算 C和python的區別

今天看書發現python與C的負數取餘運算結果不一樣,查資料理解.python

取餘運算的算法是相同的  r = a- n*(a/n)   n!=0算法

 r是餘數,a是被除數,n是除數.n不能爲0,不然都會報錯.spa

負數取餘運算的區別在於除法的取整方向不一樣,C語言從C99開始規定向0取整,python規定向負無窮取整.code

python    a%n的符號與n相同 -11//4          #值爲-3
-11%4  ->  (-11) -4*(-11//4) =1     #值爲1
C語言      a%n的符號與a相同 -11/4         //值爲-2
-11%4      (-11) - 4*(-11/4) =-3   //值爲-3
相關文章
相關標籤/搜索