在许多古老的微处理器上, 位运算比加减运算略快, 通常位运算比乘除法运算要快很多。 在现代架构中, 情况并非如此:位运算的运算速度通常与加法运算相同(仍然快于乘法运算).下面小编准备了关于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