逻辑运算符: &&,||,!
位运算符: &,|,^,~ , >>,<<,>>> (了解!!!)
条件运算符 ?:
*/
++: 单目运算符,自加1,如果++放在前面,先自加,再参加运算
如果++放在后面,先参加运算,后自加
--:单目运算符,自减1,如果--放在前面,先自减,再参加运算
如果--放在后面,先参加运算,后自减
//扩展赋值运算符
int c = 10;
//这两种写法结果是一样的,建议大家使用扩展运算符来写代码
/*
数据类型的转换:
d是byte类型,1是int类型,d+1就变成int类型,低位向高位自动转换
=号右边高位,左边是低位,就要强制转换 语法:(datatype)
//逻辑运算符
/*
&&:短路与,如果第一表达式返回为false,后面的表达式就不再执行
&: 逻辑与,不管第一个表达式返回是true还是false,后面的表达式都会执行
||:短路或,如果第一表达式返回为true,后面的表达式就不再执行
|: 逻辑或,不管第一个表达式返回是true还是false,后面的表达式都会执行
//移码 原码 反码 补码
//用最高效的方法把2变成16?
/*
<<:有符号左移,乘2操作,左移几位就乘以几个2
>>:有符号右移,除2操作,右移几位就除以几个2
>>>:无符号右移
*
//条件运算符:三目运算符,第一个表达式返回为true,则取?后面的值,反之取:后面的值
/*
基本数据类型之间的转换:
1、自动转换(隐式转换):赋值运算符左边范围大,右边范围小,就是小范围向大范围转,会自动转型
2、强制转换:赋值运算符左边范围小,右边范围大,就是大范围向小范围转,需要强制转换
语法:(datatype)
注意:
1、一般都是同一种数据类型,我们才讨论它们的转型问题;
2、强制转换之后,数据精度可能会丢失