&(按位與)
定義:針對二進制,只要有一個為0,就為0。2 & 5 = 02的二進制:00000000 00000000 00000000 000000105的二進制:00000000 00000000 00000000 00000101
|(按位或)
定義:針對二進制,只要有一個為1,就為1。2 | 5 = 72的二進制:00000000 00000000 00000000 000000105的二進制:00000000 00000000 00000000 00000101
^(按位亦或)
定義:針對二進制,相同的為0,不同的為1。2 ^ 5 = 72的二進制:00000000 00000000 00000000 000000105的二進制:00000000 00000000 00000000 000001012 ^ 3 = 12的二進制:00000000 00000000 00000000 000000103的二進制:00000000 00000000 00000000 00000011
~(按位非)
定義:按位取反運算符翻轉操作數的每一位,即0變成1,1變成0。~8 = -98的二進制:00000000 00000000 00000000 00000100~8的二進制:11111111 11111111 11111111 11110111因為高位是1,所以該數為負數。<font color ="#CC0000">負數的補碼是其絕對值的原碼取反,末尾再加1。</font>末尾減1得反碼:11111111 11111111 11111111 11110110將反碼取反:00000000 00000000 00000000 00001001 = 9
<<(向左位移)
定義:針對二進制,轉換成二進制后向左移動3位,后面用0補齊。3 << 1 = 63的二進制:00000000 00000000 00000000 000000113左移后進制數:00000000 00000000 00000000 00000110
>>(向右位移)
定義:針對二進制,轉換成二進制后向右移動3位。3 >> 1 = 13的二進制:00000000 00000000 00000000 000000113右移后進制數:00000000 00000000 00000000 00000001
>>>(無符號右移)
定義:忽略符號位,空位都以0補齊。-1 >>> 1 = 2147483647-1的二進制(補碼表示法):11111111 11111111 11111111 11111111右移后:01111111 11111111 11111111 11111111