1.Java運(yùn)算符優(yōu)先級:(從左往右優(yōu)先級越泄彷骸)
[ ]? ? ? ? ( )? ? ++? ? ? --? ? ? ? !? ? ? ~? ? ? instanceof? ? ? *? ? ? /? ? ? %? ? ? +? ? ? ? -? ? ? ? <<? ? ? >>? ? ? ? ? >>>? ? ? ? <? ? ? >? ? ? < =? ? ? > =? ? ? ==? ? ? !=? ? ? &? ? ^? ? ? &&? ? ? ||? ? ? ? ? :? ? ? ? ? op=
2.左移:(<<) 操作數(shù)乘以2的n次方 ,不夠就是補(bǔ)0
System.out.println(6<<2); ?//6 x 2 x2 = 24
3.右移:(>>) ?操作數(shù)除以2的n次方 ,(這里注意點(diǎn):如果是負(fù)數(shù)的話就是補(bǔ)1,正數(shù)補(bǔ)0)
System.out.println(6>>2); 6 /(2*2) = 1
4.無符號右移 :(都是補(bǔ)0的操作)
5.左移,右移的應(yīng)用:
1.需求:交換兩個數(shù)字的大小澳骤,不能使用三方變量來實(shí)現(xiàn)改功能
? ? //方式一: 相加法 ?
? ? //方式二: 異或法
//方式一:相加法狰贯,確定是不能超過Int的存儲的范圍
int ?a = 5;
int b = 3;
a = a + b;//a = 5+3 = 8
b = a - b;//b = 8-3 = 5
a = a - b;//a = 8-5 = 3
//方式二:異或法
int? a = 5;
int ?b = 3;
a = a^b;//a = 5^3
b = a^b;//b = 5^3^3 = 5
a = a^b;//a = 5^3^5 = 3
2.需求:求一個數(shù)的低四位的值 (使用與&)?