1、先理解原碼、反碼、補碼
正數的原碼、反碼、補碼都一樣。
舉例 10為例。
關鍵是負數。
原碼:
反碼:最高位不變,其余的取反得到:1111 1111 1111 1111 1111 1111 1111 0101
補碼:等於反碼加1。 1111 1111 1111 1111 1111 1111 1111 0110
2、位運算
位運算符:操作數是整數,但是操作負整數時,用的是補碼!!!!!
左移 << : 右邊補0
右移 >>: 左邊補0或1,如果原數最高位是1就補1,是0就補0.
無符號右移 >>> : 左邊補0
按位與 & :二進制對應位置取與 ,同時為1才為1,否則為0
按位或 | :二進制對應位置取或 ,有一個為1就為1
按位異或運算 ^ :二進制對應位置取異或 ,兩者不同才為1
按位取反 ~ :二進制對應位置取反 ,原來是1,變為0,原來是0變為1
說明:位運算符都是機器數直接運算的
