2023.7.7運(yùn)算符
1.比較|關(guān)系運(yùn)算符 :?
<? >? <=? ?>=?
操作數(shù)只能為數(shù)值型的操作數(shù)? byte short int long? float? double? ?char
==? !=
操作數(shù)可以為基本數(shù)據(jù)類(lèi)型,或者引用數(shù)據(jù)類(lèi)型
注意 : 比較運(yùn)算符的運(yùn)算結(jié)果為boolean結(jié)果
2.邏輯運(yùn)算符 :?
操作數(shù)都為值為boolean類(lèi)型的表達(dá)式
& : 兩邊都為true,結(jié)果為true,一個(gè)為false就是false
| : 一個(gè)為true就是true,兩個(gè)都是false才是false
! : 取反
^ : 相同為false,不同為true
短路運(yùn)算符 : 如果第一個(gè)操作數(shù)的結(jié)果就能夠決定最終的結(jié)果,第二個(gè)操作數(shù)不再執(zhí)行
&& : 兩邊都為true,結(jié)果為true,一個(gè)為false就是false
|| : 一個(gè)為true就是true,兩個(gè)都是false才是false
建議 :?
使用短路運(yùn)算符代替&和|
條件運(yùn)算符 :?
條件表達(dá)式? 值1 : 值2;
執(zhí)行流程 :?
1.計(jì)算條件表達(dá)式(要求為值為boolean類(lèi)型的表達(dá)式),得到一個(gè)boolean結(jié)果
2.如果結(jié)果為true,取值1
3.如果結(jié)果為false,取值2
位運(yùn)算符 :了解
將操作數(shù)轉(zhuǎn)為二進(jìn)制,然后對(duì)二進(jìn)制的數(shù)據(jù)進(jìn)行指定規(guī)則的運(yùn)算,最終將結(jié)果轉(zhuǎn)為十進(jìn)制
& : 一個(gè)為0就是0,兩個(gè)都為1才是1
| : 一個(gè)為1就是1,兩個(gè)都為0才是0
^ : 相同為0,不同為1
3.位移運(yùn)算符
<< 左移運(yùn)算符
將第一個(gè)操作數(shù)轉(zhuǎn)為二進(jìn)制,向左移動(dòng)第二個(gè)操作數(shù)的位數(shù),空位補(bǔ)0,最終的二進(jìn)制的結(jié)果轉(zhuǎn)為十進(jìn)制
規(guī)律 : a<<b ==> a*2^b;
>> 右移運(yùn)算符
將第一個(gè)操作數(shù)轉(zhuǎn)為二進(jìn)制,向右移動(dòng)第二個(gè)操作數(shù)的位數(shù),移出線的位數(shù)忽略,剩余的二進(jìn)制數(shù)據(jù)轉(zhuǎn)為十進(jìn)制
規(guī)律 : a>>b ==> a/2^b;
運(yùn)算符優(yōu)先級(jí) :?
單目算數(shù)位關(guān)系,邏輯三目后賦值
賦值運(yùn)算符 :?
基礎(chǔ)賦值運(yùn)算符 :?
= 是唯一一個(gè)自右向左運(yùn)算的符號(hào)
4.擴(kuò)展賦值運(yùn)算符 : (基礎(chǔ)賦值運(yùn)算符+算數(shù)運(yùn)算符)
+= ==> a+=2;? ==> a=a+2;
-=
*=
/=
%=
優(yōu)點(diǎn) :?
1.自動(dòng)做強(qiáng)制類(lèi)型轉(zhuǎn)換
2.提高執(zhí)行效率
推薦使用擴(kuò)展賦值運(yùn)算符?
在編譯期間,滿足條件的代碼會(huì)自動(dòng)優(yōu)化成為擴(kuò)展賦值運(yùn)算符?