~取反操做符移動
1
由於1的原碼,反碼,補碼都爲,0000 0000 0000 0000 0000 0000 0000 0001。因此取反後爲
1111 1111 1111 1111 1111 1111 1111 1110(補碼),要轉換成反碼,1111 1111 1111 1111 1111 1111 1111 1101把反碼轉換成原碼1000 0000 0000 0000 0000 0000 0000 0010,因此~1=-2
-1
由於-1的原碼爲:1000 0000 0000 0000 0000 0000 0000 0001 反碼爲:1111 1111 1111 1111 1111 1111 1111 1110 補碼爲:1111 1111 1111 1111 1111 1111 1111 1111 取反以後0000 0000 0000 0000 0000 0000 0000 0000 因此-1取反以後等於0
| 按位或操做(兩個裏面有一個是1就是1)
&按位與操做(兩個都是1才爲1)
^異或操做(兩個不同就是1)
2>>1按位右移(符號位不變,空出位用符號位補齊)
0000 0000 0000 0000 0000 0000 0000 0010向右移動1位後0000 0000 0000 0000 0000 0000 0000 0001
1<<2按位左移(符號位不變,低位用0補齊)
0000 0000 0000 0000 0000 0000 0000 0001 向左移動兩位後 0000 0000 0000 0000 0000 0000 0000 0100