运算符:数值
编辑运算符:数值
编辑后置递增
编辑使用后置递增运算符 '++'
将数值类型变量/字段的值增加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-bit
将翻转为结果 0-bit
,0-bit
将翻转为结果 1-bit
。
错误
- 如果值是非整型类型。
位
原始 | 结果 |
---|---|
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
类型的按位或运算。