C++primer(第五版) 第二章 学习笔记

来源:互联网 发布:零售软件排名 编辑:程序博客网 时间:2024/05/17 17:56

Ⅰ. 取模运算和取余运算
(P33 2.1.2节)
对于整型数a、b来说,取模运算或者求余运算的方法都是:
1.求整数的商: c=a/b
2.计算模或者余数: r=a-c*b
区别在于:求模运算和求余运算在第一步不同。取模运算在计算c的值时,向负无穷方向舍入(floor()函数);取余运算在取c的值时,向0方向舍入(fix()函数)。

举个栗子:计算-7 Mod 4,令a=-7,b=4。
第一步:求整数商c,如进行求模运算c=-2(向负无穷方向舍入),求余c=-1(向0方向舍入);
第二步:计算模和余数的公式相同,但因c的值不同,所以求模时r=1,求余时r=-3。

归纳:
当a和b符号一致时,求模运算和求余运算所得的c的值一致,因此最终结果一致。
当a和b符号不一致时,求模运算和求余运算所得的c的值不一致。求模运算最终结果的符号和b一致,求余运算最终结果的符号和a一致。

各个环境下%运算符的含义不同,比如c/c++,java 为取余,而python则为取模。
Matlab中使用两个函数,mod()函数用于取模运算和rem()函数用于取余运算。

参考:
取模运算
取模与取余

原创粉丝点击