Java:二進位(原碼、反碼、補碼)與位元運算

來源:互聯網
上載者:User

標籤:其他   運算子   相同   color   div   負數   gpo   需要   符號   

一、二進位(原碼、反碼、補碼)
  • 二進位的最高位是符號位(“0”代表正數,“1”代表負數);
  • Java中沒有無符號數;
  • 電腦以整數的補碼進行運算;
1.  原碼:將一個整數轉換成二進位表示

以 int 類型為例,int類型佔4個位元組、共32位。

例如,2 的原碼為:00000000 00000000 00000000 00000010

        -2的原碼為:10000000 00000000 00000000 00000010

 

2. 反碼

正數的反碼:與原碼相同

負數的反碼:原碼的符號位不變,其他位取反

例如,-2 的反碼為:11111111 11111111 11111111 11111101

 

3. 補碼

正數的補碼:與原碼相同

負數的補碼:反碼+1

例如,-2 的補碼為:01111111 11111111 11111111 11111110

 

二、位元運算

Java中有4個位元運算符:

1. 按位與 &:兩位都為1,結果為1

  例如,2&3 = 2

  2  的原碼為: 00000000 00000000 00000000 00000010

  3  的原碼為: 00000000 00000000 00000000 00000011

  2&3 原碼為: 00000000 00000000 00000000 00000010 = 2

2. 按位或 |:至少一位為1,結果為1

  例如,2|3 = 3

  2  的原碼為: 00000000 00000000 00000000 00000010

  3  的原碼為: 00000000 00000000 00000000 00000011

  2|3   原碼為: 00000000 00000000 00000000 00000011 = 3

3. 按位異或 ^:兩位一個為1、一個為0,結果為1

  例如,2|3 = 3

  2  的原碼為: 00000000 00000000 00000000 00000010

  3  的原碼為: 00000000 00000000 00000000 00000011

  2^3 原碼為: 00000000 00000000 00000000 00000001 = 1

4. 按位取反 ~:0變成1、1變成0 

  例如,~2 = -3

  對2的原碼取反:11111111 11111111 11111111 11111101  (取反後結果的補碼,也就是-3的補碼。我們需要從補碼推出原碼,才能得到-3)

      轉換成反碼:    11111111 11111111 11111111 11111100 (補碼減1)

  轉換成原碼:    10000000 00000000 00000000 00000011 =-3 (符號為不變,其他位取反)

 

 總結
  1. 正數的原碼、反碼、補碼都一樣;
  2. 負數的反碼 = 原碼的符號位不變,其他位取反;
  3. 負數的補碼 = 反碼+1;
  4. 0的原碼、反碼、補碼都是0;
  5. 電腦以補碼進行運算;
  6. 取反不同於反碼;

2018-01-06 18:38:29

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.