/*
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
}
}