先写个例子:
public class ByteTest01 {
public static void main(String[] args) {
Byte b=(byte)130;
System.out.println("b:"+b);
}
}
这里输出的结果是:b:-126
那这个结果是怎么来的呢?
首先我们知道计算机中是以二进制存储数据并以补码运算
1、先将130转换为二进制,注意这里的130是int型
原码:00000000 00000000 00000000 10000010
补码:00000000 00000000 00000000 10000010
2、强转为byte,去掉前面三个字节(在补码的基础上)
此时的补码:10000010
此时的反码:10000001
原码:11111110
此时的原码值表示的就是:-126。