取余運算 C和python的區別


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

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

 r是余數,a是被除數,n是除數.n不能為0,否則都會報錯.

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

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM