C/C++除法与取模运算

12 篇文章 0 订阅
本文详细阐述了除法和取模运算的规则,特别是涉及正负数时的行为。对于除法,当被除数或除数为负数时,结果会带有负号。取模运算的结果则始终与被取模数保持相同的正负号。通过实例展示了运算过程,并解释了取模运算是如何趋向于0的截断部分。总结了%取模运算的特性,即结果正负号与被取模数一致。
摘要由CSDN通过智能技术生成

1.除法运算。

a.全是正数时,截断取整,去掉小数部分。

128 / 10 = 12;

120 / 10 = 12;

119 / 10 = 11;

b.当被除数或者除数出现负数时,可以理解成把负号提取出来,再采取上面一样的做法。

(-128) / 10 = -(128 / 10) = -12;

(128) / (-10) = -(128 / 10) = -12;

(-128) / (-10) = - -(128 / 10) = 128 / 10 = 12;

2.取模运算。

a.全是正数时,可理解为除法截断的部分,余数。

128 = (128 / 10) * 10 + (128 % 10);

128 = 12 * 10 + (128 % 10);

128 = 120 + 8;

128 % 10 = 8;

b.当出现负数时,取模运算的结果的正负号与被取模数相同。


128 = (128 / 10) * 10 + (128 % 10);

128 = 12 * 10 + 8;

128 % 10 = 8;


-128 = (-128 / 10) * 10 + (-128 % 10);

-128 = -(12) * 10 + (-128 % 10);

-128 = -120 + (-8);

-128 % 10 = -8;


128 = (128 / -10) * -10 + (128 % -10);

128 = -12 * -10 + (128 % -10);

128 = 120 + 8;

128 % -10 = 8;


-128 = (-128 / -10) * -10 + (-128 % -10);

-128 = 12 * -10 + (-128 % -10);

-128 = -120 + (-8);

-128 % -10 = -8;


简单理解为:

%取模运算, 结果正负号与被取模数一致。

除法是趋向0的截断取整。

128 / 10 * 10 = 120比128更接近0。

-128 / 10 * 10 = -120比-128更接近0。

128 / -10 * -10 = 120比128更接近0。

-128 / -10 * -10 = -120比-128更接近0。

x = x/y*y + x%y;

x%y = x - x/y*y;

假设 D = x/y*y, 

x%y = x - D;

D具有以x为起点,趋向于0的特性。

当被取模数x为正数时, D趋向于0,D<=x,  取模结果(x - D)必定是0或者正数。

当被取模数x为负数时, D趋向于0,D>=x, 取模结果(x - D)必定是0或者负数。

因此得出:

%取模运算, 结果正负号与被取模数一致的结论。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值