取余运算 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