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
是在计算商的时候采用向负无穷取整
的方法。
本文来自博客园,作者:墨镜一戴谁也不爱,转载请注明原文链接:https://www.cnblogs.com/hnuzmh/p/16196545.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律