C语言的除法与取余运算

在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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值