位運算相關

通常位運算包括:位邏輯運算,移位運算。

位邏輯運算:

按位非:~

按位與:&

按位或:|

按位異或:^


移位運算:

左移動:<< java中的最高位爲符號位,移位注意最高位被佔用。

右移動:>>最高位符號位保存不變

右移動用0填充:>>>最高位用0填充


按位非:~常用於求正值的負數或負值的正數。

eg:

int a = 9;

int b = ~a + 1;

b == -9;    


按位與

(1)可以用於清零 10100111 & 00000000

(2)可以取其中的位:10100111 & 00001111

按位或

(1)將某些位固定爲1

按位異或

(1)特定位翻轉 10001110^00001111 == 10000001

(2)保留原值

(3)交換兩個值 a = a^b;b = a^b;a = a^b; 


運算符優先級

~ < 算術運算符 < & < ^ <

eg:

int n = 7;

n<<=3;

n = n&n+1|n+2^n+3;

n>>=2;

結果:n=14

n&n+1|n+2^n+3 =(n&(n+1))|((n+2)^(n+3))

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章