二進制運算


(1)按位與運算 &

   1 & 1 = 1, 0 & 1 = 0

   51 & 5  即 0011  0011 & 0000  0101 =0000 0001 = 1;

(2)按位或運算 |

      1 | 0 = 1,1|1 =1,  0|0 =0  
    51 | 5 即 0011  0011 | 0000  0101 =0011  0111 =55;

(3)異或運算 ^

     1 ^ 1 = 0,1 ^ 0 = 1   ,0^ 0 = 0(兩個位的值不同,則結果為1,相同結果為0)

    51 ^ 5 即 0011  0011 ^0000  0101 =0011  0110=54;

(4)<<左移運算符

1.將一個運算對象的各二進制位全部左移若干位(左邊的二進制丟棄,右邊補0)

(注意:java中 整數位 32位)

11 << 2 = 44

-14 <<2 =-56

-14的二進制(11111111  11111111  11111111 11110010)左移2位

            為       11111111  11111111  11111111  11001000

        結果為(-56)(后面講述負數在二進制中如何表示的)

(5)>>右移運算符

將一個運算對象的各二進制位全部右移若干位,正數左補0,負數左補1.

4 >> 2 = 1;

-14 >> 2 = -4;

(6)~按位取反

~6 = -7

(7)>>>無符號右移運算符

二進制各個位向右移指定的位數,右移后左邊空出來的位用零來填充,移出右邊的位被丟棄。

-14 >>> 2 =11111111  11111111  11111111 11110010 => 00111111 11111111  11111111  11111100 =1073741820

(8)<<<無符號左移運算符

二進制各個位向左移指定的位數,左移后右邊空出來的位用零來填充,移出左邊的位被丟棄。

3 <<< 1  = 6 

(9)二進制中負數的計算

負數以正數的補碼表示

原碼:一個整數按照絕對值的大小轉化成二進制的數

反碼:將二進制數按位取反

補碼:反碼加 1 

以-14 舉例

原碼:14 即 00000000  00000000  00000000  00001110

反碼:         11111111  11111111  11111111  11110001

補碼:          11111111 11111111  11111111  11110010

所以-14  的二進制是 11111111 11111111  11111111  11110010

假設 我們得到  二進制讓我們求整數 就是倒着來取相反數

如二進制是           11111111  11111111  11111111  11110010

得到反碼減1         11111111  11111111  11111111   11110001

原碼:                  00000000  00000000  00000000   00001110

 即  1110  = 14  所以取反  就是-14


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM