四则运算#
Java 中的四则运算顺序和我们小学学过的一样,先乘除、后加减。在 Java 中,加减乘除分别用+
、-
、*
(星号)、/
(斜杠)表示。用圆括号(()
)括起来使其运算优先级提到最高。
上面提到的+
、-
、*
、/
都属于二元操作符(Binary operator),要求两个操作数。
由二元操作符和表达式组成的式子叫做二元表达式(Binary operator expression)。
整数#
试图将一个整数除以0会导致异常。
jshell> 0/0
| 异常错误 java.lang.ArithmeticException:/ by zero
| at (#1:1)
溢出#
JLS 规定,若整数相加、减、乘时超出了它的范围,即溢出,则结果为两数和或积在位数足够时2的补码的低阶位(Low-order bits),其符号与两数和或积的符号不同。
对于除法,只有某一数据类型的最小值除以-1时会溢出,其结果为被除数。
取整#
两个整数相除,结果仍为整数。所得的结果向下取整,即去除小数部分。
浮点数#
0除以0得NaN
,正数除以0得Infinity
,负数除以0得-Infinity
。
在数据类型一节中我们知道 Java 中的浮点数遵守 IEEE 754 标准,这就带来了精度问题。作为新手,我们只需要知道两个浮点数运算的结果不一定与预期相符就行了。
jshell> 0.1 + 0.2
$1 ==> 0.30000000000000004
取余#
使用二元操作符%
可对一个数取余数,格式为被除数 % 除数
。结果的符号和被除数的符号相同。