运算符:数值
编辑运算符:数值编辑
后置递增编辑
使用 后置递增运算符 '++'
将数值类型变量/字段的值增加 1
。对于以下类型,需要额外的隐式转换才能将提升的数值类型值返回到变量/字段的原始数值类型值:byte
、short
和 char
。如果变量/字段作为表达式的一部分读取,则在递增之前加载该值。
错误
- 如果变量/字段是非数值类型。
语法
post_increment: ( variable | field ) '++';
提升
原始 | 提升后 | 隐式 |
---|---|---|
byte |
int |
byte |
short |
int |
short |
char |
int |
char |
int |
int |
|
long |
long |
|
float |
float |
|
double |
double |
|
def |
def |
示例
-
使用不同数值类型进行后置递增。
-
使用
def
类型进行后置递增。
后置递减编辑
使用 后置递减运算符 '--'
将数值类型变量/字段的值减少 1
。对于以下类型,需要额外的隐式转换才能将提升的数值类型值返回到变量/字段的原始数值类型值:byte
、short
和 char
。如果变量/字段作为表达式的一部分读取,则在递减之前加载该值。
错误
- 如果变量/字段是非数值类型。
语法
post_decrement: ( variable | field ) '--';
提升
原始 | 提升后 | 隐式 |
---|---|---|
byte |
int |
byte |
short |
int |
short |
char |
int |
char |
int |
int |
|
long |
long |
|
float |
float |
|
double |
double |
|
def |
def |
示例
-
使用不同数值类型进行后置递减。
-
使用
def
类型进行后置递减。
前置递增编辑
使用 前置递增运算符 '++'
将数值类型变量/字段的值增加 1
。对于以下类型,需要额外的隐式转换才能将提升的数值类型值返回到变量/字段的原始数值类型值:byte
、short
和 char
。如果变量/字段作为表达式的一部分读取,则在递增之后加载该值。
错误
- 如果变量/字段是非数值类型。
语法
pre_increment: '++' ( variable | field );
提升
原始 | 提升后 | 隐式 |
---|---|---|
byte |
int |
byte |
short |
int |
short |
char |
int |
char |
int |
int |
|
long |
long |
|
float |
float |
|
double |
double |
|
def |
def |
示例
-
使用不同数值类型进行前置递增。
-
使用
def
类型进行前置递增。
前置递减编辑
使用 前置递减运算符 '--'
将数值类型变量/字段的值减少 1
。对于以下类型,需要额外的隐式转换才能将提升的数值类型值返回到变量/字段的原始数值类型值:byte
、short
和 char
。如果变量/字段作为表达式的一部分读取,则在递减之后加载该值。
错误
- 如果变量/字段是非数值类型。
语法
pre_decrement: '--' ( variable | field );
提升
原始 | 提升后 | 隐式 |
---|---|---|
byte |
int |
byte |
short |
int |
short |
char |
int |
char |
int |
int |
|
long |
long |
|
float |
float |
|
double |
double |
|
def |
def |
示例
-
使用不同数值类型进行前置递减。
-
使用
def
类型进行前置递减。
一元正号编辑
使用 一元正号运算符 '+'
来保留数值类型值的标识。
错误
- 如果该值是非数值类型。
语法
unary_positive: '+' expression;
示例
-
使用不同数值类型进行一元正号运算。
-
使用
def
类型进行一元正号运算。
一元负号编辑
使用 一元负号运算符 '-'
来对数值类型值取反。
错误
- 如果该值是非数值类型。
语法
unary_negative: '-' expression;
示例
-
使用不同数值类型进行一元负号运算。
-
使用
def
类型进行一元负号运算。
按位非编辑
使用 按位非运算符 '~'
对整数类型值中的每个位进行非运算,其中 1 位
翻转为结果 0 位
,0 位
翻转为结果 1 位
。
错误
- 如果该值是非整数类型。
位
原始 | 结果 |
---|---|
1 |
0 |
0 |
1 |
语法
bitwise_not: '~' expression;
提升
原始 | 提升后 |
---|---|
byte |
int |
short |
int |
char |
int |
int |
int |
long |
long |
def |
def |
示例
-
使用不同数值类型进行按位非运算。
-
使用
def
类型进行按位非运算。
乘法编辑
使用 乘法运算符 '*'
将两个数值类型的值相乘。结果溢出和 NaN 值的规则遵循 JVM 规范。
错误
- 如果其中一个值是非数值类型。
语法
multiplication: expression '*' expression;
提升
byte |
short |
char |
int |
long |
float |
double |
def |
|
byte |
int |
int |
int |
int |
long |
float |
double |
def |
short |
int |
int |
int |
int |
long |
float |
double |
def |
char |
int |
int |
int |
int |
long |
float |
double |
def |
int |
int |
int |
int |
int |
long |
float |
double |
def |
long |
long |
long |
long |
long |
long |
float |
double |
def |
float |
float |
float |
float |
float |
float |
float |
double |
def |
double |
double |
double |
double |
double |
double |
double |
double |
def |
def |
def |
def |
def |
def |
def |
def |
def |
def |
示例
-
不同数值类型的乘法。
-
使用
def
类型的乘法。
除法编辑
使用 除法运算符 '/'
将一个数值类型的值除以另一个。NaN 值和除以零的规则遵循 JVM 规范。用整数值进行除法会舍弃结果值的余数。
错误
- 如果其中一个值是非数值类型。
- 如果左侧的整数类型值除以右侧的整数类型值
0
。
语法
division: expression '/' expression;
提升
byte |
short |
char |
int |
long |
float |
double |
def |
|
byte |
int |
int |
int |
int |
long |
float |
double |
def |
short |
int |
int |
int |
int |
long |
float |
double |
def |
char |
int |
int |
int |
int |
long |
float |
double |
def |
int |
int |
int |
int |
int |
long |
float |
double |
def |
long |
long |
long |
long |
long |
long |
float |
double |
def |
float |
float |
float |
float |
float |
float |
float |
double |
def |
double |
double |
double |
double |
double |
double |
double |
double |
def |
def |
def |
def |
def |
def |
def |
def |
def |
def |
示例
-
不同数值类型的除法。
-
使用
def
类型的除法。
取余编辑
使用 取余运算符 '%'
计算两个数值类型值相除的余数。NaN 值和除以零的规则遵循 JVM 规范。
错误
- 如果其中一个值是非数值类型。
语法
remainder: expression '%' expression;
提升
byte |
short |
char |
int |
long |
float |
double |
def |
|
byte |
int |
int |
int |
int |
long |
float |
double |
def |
short |
int |
int |
int |
int |
long |
float |
double |
def |
char |
int |
int |
int |
int |
long |
float |
double |
def |
int |
int |
int |
int |
int |
long |
float |
double |
def |
long |
long |
long |
long |
long |
long |
float |
double |
def |
float |
float |
float |
float |
float |
float |
float |
double |
def |
double |
double |
double |
double |
double |
double |
double |
double |
def |
def |
def |
def |
def |
def |
def |
def |
def |
def |
示例
-
不同数值类型的取余。
-
使用
def
类型的取余。
加法编辑
使用 加法运算符 '+'
将两个数值类型的值相加。结果溢出和 NaN 值的规则遵循 JVM 规范。
错误
- 如果其中一个值是非数值类型。
语法
addition: expression '+' expression;
提升
byte |
short |
char |
int |
long |
float |
double |
def |
|
byte |
int |
int |
int |
int |
long |
float |
double |
def |
short |
int |
int |
int |
int |
long |
float |
double |
def |
char |
int |
int |
int |
int |
long |
float |
double |
def |
int |
int |
int |
int |
int |
long |
float |
double |
def |
long |
long |
long |
long |
long |
long |
float |
double |
def |
float |
float |
float |
float |
float |
float |
float |
double |
def |
double |
double |
double |
double |
double |
double |
double |
double |
def |
def |
def |
def |
def |
def |
def |
def |
def |
def |
示例
-
不同数值类型的加法运算。
-
使用
def
类型的加法。
减法编辑
使用 减法运算符 '-'
从左侧数值类型值中减去右侧数值类型值。结果溢出和 NaN 值的规则遵循 JVM 规范。
错误
- 如果其中一个值是非数值类型。
语法
subtraction: expression '-' expression;
提升
byte |
short |
char |
int |
long |
float |
double |
def |
|
byte |
int |
int |
int |
int |
long |
float |
double |
def |
short |
int |
int |
int |
int |
long |
float |
double |
def |
char |
int |
int |
int |
int |
long |
float |
double |
def |
int |
int |
int |
int |
int |
long |
float |
double |
def |
long |
long |
long |
long |
long |
long |
float |
double |
def |
float |
float |
float |
float |
float |
float |
float |
double |
def |
double |
double |
double |
double |
double |
double |
double |
double |
def |
def |
def |
def |
def |
def |
def |
def |
def |
def |
示例
-
不同数值类型的减法。
-
使用
def
类型的减法。
左移编辑
使用 左移运算符 '<<'
将左侧整数类型值的低位向高位移动,移动的距离由右侧整数类型值指定。
错误
- 如果其中一个值是非整数类型。
- 如果右侧值无法转换为 int 类型。
语法
left_shift: expression '<<' expression;
提升
左侧整数类型值将按照下表中的规定进行提升。右侧整数类型值始终隐式转换为 int
类型值,并截断为提升后的类型值的位数。
原始 | 提升后 |
---|---|
byte |
int |
short |
int |
char |
int |
int |
int |
long |
long |
def |
def |
示例
-
不同整数类型的左移。
-
使用
def
类型的左移。
右移编辑
使用 右移运算符 '>>'
将左侧整型值中的高位按右侧整型值指定的值向低位移动。左侧整型值的最高位将被保留。
错误
- 如果其中一个值是非整数类型。
- 如果右侧值无法转换为 int 类型。
语法
right_shift: expression '>>' expression;
提升
左侧整数类型值将按照下表中的规定进行提升。右侧整数类型值始终隐式转换为 int
类型值,并截断为提升后的类型值的位数。
原始 | 提升后 |
---|---|
byte |
int |
short |
int |
char |
int |
int |
int |
long |
long |
def |
def |
示例
-
不同整型类型的右移。
-
使用
def
类型的右移。
无符号右移编辑
使用 无符号右移运算符 '>>>'
将左侧整型值中的高位按右侧整型值指定的值向低位移动。左侧整型值的最高位将不会被保留。
错误
- 如果其中一个值是非整数类型。
- 如果右侧值无法转换为 int 类型。
语法
unsigned_right_shift: expression '>>>' expression;
提升
左侧整数类型值将按照下表中的规定进行提升。右侧整数类型值始终隐式转换为 int
类型值,并截断为提升后的类型值的位数。
原始 | 提升后 |
---|---|
byte |
int |
short |
int |
char |
int |
int |
int |
long |
long |
def |
def |
示例
-
不同整型类型的无符号右移。
-
使用
def
类型的无符号右移。
按位与编辑
使用 按位与运算符 '&'
对两个整型值中的每一位进行与运算,如果相同索引处的两位都为 1
,则结果位为 1
,否则为 0
。
错误
- 如果其中一个值是非整数类型。
位
1 |
0 |
|
1 |
1 |
0 |
0 |
0 |
0 |
语法
bitwise_and: expression '&' expression;
提升
byte |
short |
char |
int |
long |
def |
|
byte |
int |
int |
int |
int |
long |
def |
short |
int |
int |
int |
int |
long |
def |
char |
int |
int |
int |
int |
long |
def |
int |
int |
int |
int |
int |
long |
def |
long |
long |
long |
long |
long |
long |
def |
def |
def |
def |
def |
def |
def |
def |
示例
-
不同整型类型的按位与。
-
使用
def
类型的按位与。
按位异或编辑
使用 按位异或运算符 '^'
对两个整型值中的每一位进行异或运算,如果相同索引处的一位为 1
而另一位为 0
,则结果位为 1
,否则结果位为 0
。
错误
- 如果其中一个值是非整数类型。
位
下表说明了对两位进行异或运算的结果位。
1 |
0 |
|
1 |
0 |
1 |
0 |
1 |
0 |
语法
bitwise_xor: expression '^' expression;
提升
byte |
short |
char |
int |
long |
def |
|
byte |
int |
int |
int |
int |
long |
def |
short |
int |
int |
int |
int |
long |
def |
char |
int |
int |
int |
int |
long |
def |
int |
int |
int |
int |
int |
long |
def |
long |
long |
long |
long |
long |
long |
def |
def |
def |
def |
def |
def |
def |
def |
示例
-
不同整型类型的按位异或。
-
使用
def
类型的按位异或。
按位或编辑
使用 按位或运算符 '|'
对两个整型值中的每一位进行或运算,如果相同索引处至少有一位为 1
,则结果位为 1
,否则结果位为 0
。
错误
- 如果其中一个值是非整数类型。
位
下表说明了对两位进行或运算的结果位。
1 |
0 |
|
1 |
1 |
1 |
0 |
1 |
0 |
语法
bitwise_or: expression '|' expression;
提升
byte |
short |
char |
int |
long |
def |
|
byte |
int |
int |
int |
int |
long |
def |
short |
int |
int |
int |
int |
long |
def |
char |
int |
int |
int |
int |
long |
def |
int |
int |
int |
int |
int |
long |
def |
long |
long |
long |
long |
long |
long |
def |
def |
def |
def |
def |
def |
def |
def |
示例
-
不同整型类型的按位或。
-
使用
def
类型的按位或。