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