0


C++中取模运算mod和取余运算rem的区别

一般运算

数a,对数b进行取模或者取余运算
先求出a对b的除数 c = a / b
然后算出余数 d = a - b*c

区别

取模和取余运算的区别就在于a对b做除法的时候是怎样来取整的。

  • 对于c++, %运算符是取余,采取了向零取整的方式。在这里插入图片描述 5 ÷ 3 = 1.6666 向零取整为1 -5 ÷ 3 = - 1.6666向零取整为-1 对于(5) % (-3) 得到式子: 5 - (-3 * (-1)) = 2 对于(-5) % (3) 得到: -5 - (3 * (-1) ) = -2在这里插入图片描述
  • 取模采用了向负无穷取整的方式 在除法的时候采用取下整函数floor( )来实现值得注意的是floor的参数要转换为浮点数。例如 floor(-5/3)得到的结果是-1。 原因:-5/3在c++中结果为整数 -1,所以floor(-1) = -1; 如果是 -5.0/3结果为 - 1.666666,floor(-1.6666) = -2;在这里插入图片描述在这里插入图片描述 5 mod -3中,floor(5.0 / -3) = -2, 结果为5 - (-3 * -2)= -1

总结

取余rem

是在计算商的时候采用

向零取整

的方法。

取模mod

是在计算商的时候采用

向负无穷取整

的方法。

标签: c++

本文转载自: https://blog.csdn.net/weixin_53475254/article/details/120123881
版权归原作者 wuming先生 所有, 如有侵权,请联系我们删除。

“C++中取模运算mod和取余运算rem的区别”的评论:

还没有评论