运算符:数值
编辑运算符:数值
编辑后置递增
编辑使用 后置递增运算符 '++'
将数值类型变量/字段的值增加 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
类型的按位或。