操作符 | 功能 | 用法 |
+ | 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