在C语言中,负数除法运算与正数除法运算不一样,遵循原则有:
a/b 分子分母的符号,相同为正,相异为负
a%b 结果取分子(a)的符号,即与被除数(a)符号相同
eg : -3/16 = 0 ; 16/-3 = -5;
-3%16 = -3 ; 16%-3 = 1;
在数学公式中,c语言和Python的表示算法都是一样的:
r=a-n*[a/n]
以上,r是余数,a是被除数,n是除数。
唯一不同点,就是商向0或负无穷方向取整的选择:
c从c99开始规定向0取整
python则规定向负无穷取整
向零取值的含义是:
9/7=1 .29 ----向0取值--> 1
-9/7=-1.29----向0取值--> -1
向负无穷取值的含义是:
9/7=1 .2 9----向0取值--> 1
-9/7=-1.29----向0取值--> -2
所以套用上述公式为:
C 语言:(a%n的符号与a相同)
-9%7=-9 - 7*[-1]= -2;
9%-7=9 - -7*[-1]= 2;
Python :(a%n的符号与n相同)
-9%7=-9 - 7*[-2]= 5
9%-7=-9 - -7*[-2]= -5
C语言的除法与取余运算
最新推荐文章于 2024-10-09 22:02:13 发布