操作符 |
功能 |
用法 |
+ |
unary plus(一元正号) |
+ expr |
- |
unary minus(一元负号) |
- expr |
* |
multiplication(乘法) |
expr * expr |
/ |
division(除法) |
expr / expr |
% |
remainder(求余) |
expr % expr |
+ |
addition(加法) |
expr + expr |
- |
subtraction(减法) |
expr - expr |
对两个整数做除法,结果仍为整数,如果它的商包含小数部分,则小数部分会被截除。
操作符 % 称为“求余(remainder)”或“求模(modulus)”操作符,用于计算左操作数除以右操作数的余数。该操作符的操作数只能为整型,包括bool、char、short 、int 和 long 类型,以及对应的 unsigned 类型:
int ival = 42;
double dval = 3.14;
ival % 12; // ok: returns 6
ival % dval; // error: floating point operand
在除法运算中,如果两个运算对象的符号相同则商为正(如果不为零),否则为负。除了-m导致溢出的特殊情况,其它时候(-m)/n和m/(-n)都等于-(m/n)。
m%(-n)等于m%n,-(m)%n=-(m%n)。
21 % 6; // ok: result is 3
21 % 7; // ok: result is 0
-21 % -8; // ok: result is -5
21 % -5; // ok: result is 1
21 / 6; // ok: result is 3
21 / 7; // ok: result is 3
-21 / -8; // ok: result is 2
21 / -5; // ok: result is -4