0. 对于正数的取模运算
大前提是,取模运算的运算对象一定是整数。
当被除数和除数均为正整数时,取模运算遵循的法则为:A % B
即为B整除A后的余数,如5 % 2
的结果为1
,6 % 10
的结果为6
。
1. 对于负数的取模运算
网上有取模的公式,我在这里先给出公式:
A % B = A - A / B * B
公式计算会相对复杂一些,其实可以借助C99标准来简单记忆负数的取模运算规律:
取模运算结果的正负是由左操作数的正负决定的。如果%左操作数是正数,那么取模运算的结果是非负数;如果%左操作数是负数,那么取模运算的结果是负数或0。
也就是说,在进行有负数参与的取模运算时,我们可以这样做:先将被除数和除数都按照正数来进行运算,然后观察被除数(左操作数)的正负,若被除数为正,则运算结果为正,若被除数为负,则运算结果为负。运算结果的正负与右操作符无关。
下面借助代码来实际验证一下:
#include <iostream>
using namespace std;
int main()
{
cout << 5 % 2 << endl;
cout << 5 % -2 << endl;
cout << -5 % 2 << endl;
cout << -5 % -2 << endl;
return 0;
}
输出结果为
1
1
-1
-1