操作符

功能

用法

+

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