java個人學習筆記:位元運算符

來源:互聯網
上載者:User

標籤:

位元運算是直接對二進位進行運算的。

<<  左移 3<<2 –> 3*2*2 像左移動兩位。實則*2*2

3:        0000 0011

左移兩位  0000 1100

>> 右移 3>>2 –> 3/2/2 實則/2/2

3:          0000 0011

右移兩位   0000 0000

有符號的右移時候,最高位是0的用0補,最高位是1的用1補。

-3 >> 2

-3         1000 0000 0000 0000 0000 0000 0000 0011 原碼 1111 1111 1111 1111 1111 1111 1111 1100反碼 1111 1111 1111 1111 1111 1111 1111 1101 補碼

右移兩位  11 1111 1111 1111 1111 1111 1111 1111  11 (01丟失)補碼 1111 1111 1111 1111 1111 1111 1111 1111  1110 反碼 1000 0000 0000 0000 0000 0000 0000 0001 結果為-1

 

>>> 無符號的右移運算

-3 >>> 2

-3         1000 0000 0000 0000 0000 0000 0000 0011 原碼 1111 1111 1111 1111 1111 1111 1111 1100 反碼 1111 1111 1111 1111 1111 1111 1111 1101 補碼

右移兩位  00  1111 1111 1111 1111 1111 1111 1111  11 (01丟失)結果為1073741823

注意在java中 整數預設用int儲存 所以是4位元組。

 

&與運算          二進位碼的與運算

|或運算、        二進位碼的或運算

^異或運算       二進位碼的異或運算

~反碼           

 

12&5

12的原碼(高位為0不寫)

12   0000 1100

5     0000 0101

&     0000 0100

結果  4

 

12|5

12   0000 1100

5     0000 0101

|     0000 1101

結果 13

 

12^5

12   0000 1100

5     0000 0101

^    0000 1001

結果 9

 

~12

12   0000 0000 0000 0000 0000 0000 0000 1100

~    1111 1111 1111 1111 1111 1111 1111 0011 (符號位改變 負數補碼)

      1111 1111 1111 1111 1111 1111 1111 0010 (反碼)

      1000 0000 0000 0000 0000 0000 0000 1101 (原碼)

結果:-13

 

int m =5;

int n = 3

m = m^n;

n = m^n;

m = m^n;

 

m = m^n

n = m ^ n = (m ^ n) ^n = m =5

m = m ^n = (m ^ n) ^n = n = 3

5    0000 0101  

3    0000 0011

^   0000 0110         6

3    0000 0011

^   0000 0101         5

java個人學習筆記:位元運算符

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.