1. 程式人生 > >關於Java運算子的含義:左移、右移、無符號右移、位與、位或、位非、位異或

關於Java運算子的含義:左移、右移、無符號右移、位與、位或、位非、位異或

一、左移( << )

形式:a<<b
含義:將a的數值在二進位制下向左移動b個位置
示例:5<<2

//原數值
0000 0101
//左移後
0001 0100

二、右移( >> )

形式:a>>b
含義:將a的數值在二進位制下向右移動b個位置,左邊的用原有標誌位補充
示例:5>>2

//原數值
0000 0101
//左移後
0000 0001

三、無符號右移( >>> )

形式:a>>>b
含義:將a的數值在二進位制下向右移動b個位置(高位空出的部分總是用0進行補位)

四、位與( & )

形式

:a&b
含義:將a和b的數值在二進位制下逐位比較,相同取1,不同取0,得到一個新的與原a/b二進位制位數相同的數值

五、位或( | )

形式:a|b
含義:將a和b的數值在二進位制下逐位比較,全都為0則新數字對應位數取0,否則取1。

六、位異或( ^ )

形式:a^b
含義:將a和b的數值在二進位制下逐位比較,相同取0,不同取1,得到一個新的與原a/b二進位制位數相同的數值

七、位非( ~ )

形式:~a
含義:將a在二進位制下的每個數字取0/1的反值,遇0取1,遇1取0,得到新的數字。