1. 程式人生 > >【C++】%運算子的使用技巧

【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; // %運算子右邊的數為負數時