在許多古老的微處理器上, 位運算比加減運算略快, 通常位運算比乘除法運算要快很多。 在現代架構中, 情況並非如此:位運算的運算速度通常與加法運算相同(仍然快於乘法運算).下面小編準備了關於Java的位運算子和邏輯運算子,提供給大家參考!
一. 與、或、非、異或運算
與
0&&0 =0
1&&0 =0
0&&1 =0
1&&1 =1
或
0||0 =0
1||0 =1
0||1 =1
1||1 =1
非(求反)
~1 =0
~0 =1
異或
真^假=真
假^真=真
假^假=假
真^真=假
如:11001010 與
00011011 進行與或以及異或運算,結果分別是:
00001010 、11011011、11010001
二、位運算子
“>> 右移”;“<< 左移”;“>>> 無符號右移”
注意:右移相當於是除,左移相當於就是乘,左移一位乘以2,左移二位乘以4,依此類推。
無論正數、負數,它們的右移、左移、無符號右移32位都是其本身,比如 -5<<32=-5、-5>>32=-5、-5>>>32=-5
如:-5>>3=-1
-5<<3=-40
5>>3=0
5<<3=40
-5>>>3=536870911