计算机在任何情况下智只能识别二进制
计算机在底层存储数据的时候,一律存储的是 “ 二进制的补码形式 ”
计算机采用补码形式存储数据的原因是:补码形式效率最高
什么是补码?
二进制有:原码,反码,补码
二进制的表现形式:
对于一个正数来说,二进制原码,补码,反码都是一个,完全相同
int i = 1;
对应的二进制原码:00000000 00000000 00000000 00000001
对应的二进制反码:00000000 00000000 00000000 00000001
对应的二进制补码:00000000 00000000 00000000 00000001
byte i = -1;
对应的二进制原码:10000001
对应的二进制反码(符号位不变,其他位取反):111111110
对应的二进制补码(反码+1):11111111
public class testInt{
public static void main(String[] args) {
// 编译报错,因为150超出了byte的取值范围,不能直接复制,要强制类型转换
byte i = (byte)150;
// 输出的是 11101010 (-106)
System.out.println(i);
}
}
对byte i = (byte)150;的分析
int类型的4个字节的150的二进制码是什么?00000000 0000000 00000000 10010110将以上的int类型强制转换为byte的二进制是:
10010110 注意:计算机存储的是二进制的补码形式可以采用逆推的方式推到出原码形式是
补码 10010110 --> 反码 10010101 —> 原码 11101010



