【C++】%运算符的使用技巧

 如下C++程序所示:

 1 #include <cstdio>
 2  
 3 using namespace std;
 4  
 5 int main()
 6 {
 7     int a = 10, b = 4;
 8     printf("%d\n", a % b);
 9     printf("%d\n", a % -b);
10     printf("%d\n", -a % b);
11     printf("%d\n", -a % -b);
12     return 0;
13 }

输出结果为:

2
2
-2
-2

那么可以得知:在C++中,%运算结果的符号为%运算符左边的数,与其右边的数无关。

如果想要在C++中让负数模其他数为非负数,那么只需要写成下面这样就行了。

1 a = (a % b + b) % b; // %运算符右边的数为正数时
2 a = (a % b - b) % b; // %运算符右边的数为负数时

猜你喜欢

转载自www.cnblogs.com/kcn999/p/10015392.html