二進制原碼反碼補碼


/*
1、計算機在任何情況下都只能識別二進制

2、計算機在底層存儲數據的時候,一律存儲的是"二進制的補碼形式"。
計算機采用補碼形式存儲數據的原因是:補碼形式效率最高。

3、什么是補碼呢?
二進制有:原碼 反碼 補碼

4、記住
對於一個正數來說:二進制原碼、反碼、補碼、是同一個,完全相同。
int i = 1;
對應的二進制原碼:00000000 00000000 00000000 00000001
對應的二進制反碼:00000000 00000000 00000000 00000001
對應的二進制補碼:00000000 00000000 00000000 00000001
對於一個負數來說:二進制原碼、反碼、補碼是什么關系呢?
byte i = -1;
對應的二進制原碼:10000001
對應的二進制反碼(符號位不變,其他位取反):11111110
對應的二進制補碼(反碼+1):11111111

5、分析 byte b = (byte)150;
這個b是多少
int類型的4個字節的150的二進制碼是什么?
00000000 00000000 00000000 00000000 10010110
將以上的int類型強制類型轉為1個字節的byte,最終在計算機中的二進制碼是:
10010110

千萬要注意:計算機永遠存儲的都是二進制補碼形式。也就是說上面
10010110 這個是一個二進制補碼形式,你可以采用逆推導的方式推算出
這個二進制補碼對應的原碼是啥!
10010110 ---> 二進制補碼形式
10010101 ---> 二進制反碼形式
11101010 ---> 二進制原碼形式

*/
public class 二進制原碼反碼補碼
{
  public static void main(String[] args){

    // 編輯報錯:因為150已經超出了byte取值范圍,不能直接賦值,需要強轉。
    // byte b = 150;
    byte b = (byte)150;

    // 這個結果會輸出多少呢?
    System.out.println(b); // -106
  }
}


免責聲明!

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



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