3.2 算术操作符

from http://www.learncpp.com/cpp-tutorial/32-arithmetic-operators/

一元算术操作符

有两种一元算术操作符,+和-。一元操作符只进行一次操作

Operator Symbol Form Operation
Unary plus + +x Value of x
Unary minus - -x Negation of x

为了获得最好的效果,这些操作符最好与操作对象紧挨在一起(如,-x,不是- x)。

不要将一元减操作符和二元减操作符相混淆。如x = 5 - -3;。

二元操作符

这里有5中二元算术操作符

Operator Symbol Form Operation
Addition + x + y x plus y
Subtraction - x - y x minus y
Multiplication * x * y x multiplied by y
Division / x / y x divided by y
Modulus % x % y The remainder of x divided by y


整型和浮点型除法

很容易认识到除法有两种不同的模式。如果操作数都是整型,除法操作得到的是整型的结果。整型相除,将小数部分都丢弃了。如,7/3=2。注意,整型相除并不会四舍五入,3/4=0而不是1.

如果其中一个或两个操作数都是浮点型,除法操作符执行浮点型相除的模式,返回一个浮点型值,小数部分被保留。如,7.0/3=2.333,7/3.0=2.333,7.0/3.0=2.333.

注意不要试图去除0或0.0,这样通常会使你的程序奔溃,因为这样的方式是没有被定义的!


取模

取模操作符只适用于整型的操作数,它返回的是两个整型值相除后的余数。如,7/3=2余1,所以7%3=1.

取模操作在检测一个数是否被另一个数整除的时候很有用,采用if x%y==0的判断方式。这在当我们需要每隔n个循环进行一次操作时变得很有用

举个例子,我们想要写一个每个20个数字一行输出1到100的数字的程序。我们可以采用取模的方式判断时候需要换行

   1: #include <iostream>
   2:  
   3: int main()
   4: {
   5:     using namespace std;
   6:  
   7:     // nCount holds the current number to print
   8:     int nCount = 1; // start at 1
   9:  
  10:     // Loop continually until we pass number 100
  11:     while (nCount <= 100)
  12:     {
  13:         cout << nCount << " "; // print the current number
  14:  
  15:         // if nCount is divisible by 20, print a new line
  16:         if (nCount % 20 == 0)
  17:             cout << endl;
  18:  
  19:         nCount = nCount + 1; // go to next number
  20:     } // end of while
  21: } // end of main()


注意当有负值参与到整型相除与取模的操作的情况

如果一个或两个操作数是负值,编译器自由的进行向上截断或是向下截断!大多数编译器是向零靠近进行截断。如,-5/2的值可以是-3或是-2,这取决于你的编译器。

如果取模操作符是负值,这个结果可能是负值也可能是正值!如-5%2可以是-1,也可能是1.

 

 

算术赋值操作符

Operator Symbol Form Operation
Assignment = x = y Assign value y to x
Addition assignment += x += y Add y to x
Subtraction assignment -= x -= y Subtract y from x
Multiplication assignment *= x *= y Multiply x by y
Division assignment /= x /= y Divide x by y
Modulus assignment %= x %= y Put the remainder of x / y in x

你可能感兴趣的:(操作符)