取余和取模
来源:互联网 发布:免费刷超级会员软件 编辑:程序博客网 时间:2024/05/01 05:52
对于整型数a,b来说,取模运算或者求余运算的方法都是:
1.求 整数商: c = a/b;
2.计算模或者余数: r = a - c*b.
但是求模运算和求余运算在第一步不同: 求余运算在取c的值时,向0 方向舍入(int强制转换); 而取模运算在计算c的值时,向负无穷大方向舍入(floor()函数)。
因此,当a和b符号一致时,求模运算和求余运算所得的c的值一致,因此结果一致。但是当符号不一致的时候,结果不一样。
具体来说,求模运算结果的符号和b一致,求余运算结果的符号和a一致。
在C++中,%符号表示的是求余运算,在C++中没有取模运算符或者函数,需要自己实现。
取模运算函数
bool mod(int m, int n, int* pResult){ if (n == 0) return false; double c = (double)m / n; *pResult = m - floor(c)*n; return true;}
floor()函数向下取整,ceil()函数向上取整。包含在库文件cmath中
inline float floor( float _X) restrict(amp);inline double floor( double _X) restrict(amp);inline float ceil( float _X) restrict(amp);inline double ceil( double _X) restrict(amp);
floor(),ceil()和Int强制转换:如果 Number 为负,则 Int 返回小于或等于 Number 的第一个负整数, 例如
int(-8.4)=-8;ceil(-8.4) = -8;floor(-8.4) = -9;int(2.3) = 2;ceil(2.3) = 3;floor(2.3) = 2;
总之,int强制类型转换将浮点数向0取整,floor向负无穷大取整,ceil向正无穷大取整
0 0
- 取余和取模
- 取模?取余?
- 取模和取余的区别
- 取模和取余的区别
- 取模和取余的区别
- 【取模】和【取余】分辨
- 取余和取模的小结
- 取模和取余的区别
- 取模和取余的区别
- 求模和取余
- 求模和取余
- 取整和取余
- 取模!=取余
- Java 取模 取余
- js 取模 取余
- 取模与取余
- Java 取模 取余
- 除法和取余
- PHP学习小结
- base64图片字符串转图片
- 《JavaScript高级程序设计 第三版》学习笔记 (十)DOM详解
- Aspose.Pdf V17.4.0发布,改进功能新增多个API | 附下载
- 杭电ACM2001:两点间距离
- 取余和取模
- HTML mata标签详解
- (已解)不初始化APP,进行运行
- MySQL5.7安装过程和一些坑
- ZOJ-3696 Alien's Organ(泊松分布)
- 代码整洁之道精华——第二章 有意义的命名
- SpringMVC+myBatis启动报错:Access denied for user 'stati'@'localhost' (using password: YES)
- code review的做法以及问题
- 汪海Python爬虫(一)抓取网页的含义和URL基本构成