算术运算符、关系运算符、逻辑运符、位运算符。
常用的算数运算符有:
+ - / % ++ --;
关系运算符:
“>’‘<’‘>=’‘ <=’‘==’‘!=’;
逻辑运算符:
‘!’‘&&’‘&’‘||’‘|’‘^’;
位运算符:‘~’‘&’‘|’‘^’‘<<’ ‘>>’‘>>>’;
赋值运算符 =;
符合算数赋值 += -= *= /= %=;
复合运算赋值 &= |= ^= >>= <<= >>>=;
条件运算符( ? : )
-------------------
算术运算符:
(++ --)前加后不加
例:i=++2;输出i为3;
i=2++;输出i为2;
char类型的数据可以进行算术运算,而boolean类型的数据不能进行算术运算。
---
关系运算符:得到的结果为布尔类型,
真值=true(1) 假值为false(0)。
‘&’有假为假(0);‘|’有真为真(1);‘^’相同为0 不同为1;
‘&&’‘||’短路与、或:左边表达式即可确定与或的结果,则右边的表达式将不会执行。!逻辑非。
---
位运算符:
位运算符用来对整型(byte、short、int、long)或字符型(char)数据二进制位进行操作,结果为一个整数。
~取反:~00000101==11111010【结果负数】
二进制负数是其绝对值取反+1加负号
例:11111010-1=11111001
00000110=9
11111010=-9;
&按位相与: 0&0=0;0&1=0;1&0=0;1&1=1 有0得0
|按位相与: 0|0=0;0|1=1;1|0=1;1|1=1 有1得1
^按位相异或:0^0=0;0^1=1;1^0=1;1^1=0 相异为1 相同为0
>>(按位右移)
格式:a >> b
功能:将a右移b位,右端的低位被舍弃,左端高位补原来的符号位 。
<<(按位左移)
格式:a << b
功能:将a左移b位,右端的低位补0,左端的高位被舍弃。
>>>(无符号右移)
格式:a >>> b
功能:将a右移b位,右端的低位被舍弃,左端的高位补0。
public int getOneBit(int num,int n){ int i=1 << (n-1); int nb = num & i;
return nb >> (n-1);
}这个方法可以返回num的第n-1位。
---
赋值运算符:
赋值规则:
{当赋值运算符两侧的类型不一致时,如果左侧变量的数据类型的表示范围更大,则把右侧的数据自动转换为与左侧相同的数据类型,然后赋给左侧变量,否则,需要使用强制类型转换运算符。
注意:波尔类型不能与任何其它数据类型转换。
强制类型转换
格式:(目标数据类型)变量或表达式;
强制转换会导致数据丢失}
自动转换:
(byte或short)和int→int
(byte或short或int)和long→long(byte或short或int或long)和float→float(byte或short或int或long或float)和double→doublechar和int→int
格式:变量=表达式;
---
条件运算符:
格式:表达式1?表达式2:表达式3
表达式1应是boolean类型的表达式;
表达式2和表达式3的类型要一致。
例:弹出输入对话框,接收用户输入: JOptionPane.showInputDialog(s)
将数字的字符串表示形式转换为整数:
Integer.parseInt(s)
result = (score>=60) ? "及格" : "不及格"
System.out.println(result);
---
表达式是由若干操作数和运算符按照约定规则构成的一个序列。
运算符标明对操作数进行何种操作;
操作数可以是变量、常量或有返回值的方法调用等其他的表达式。