关于内存溢出理解:
例:
int转为byte
int的内存位数为32位 byte的内存位数为8位
int 128二进制为0000 0000 0000 0000 0000 0000 1000 0000
byte 128二进制为1000 0000
当int转为byte时
Int前面多出的数字会消掉变为1000 0000
此时1000 0000为byte的原码
1是符号位(进制中0为正 1为负)
所以byte的反码就是1111 1111
计算它的补码
除去符号位不算 根据二进制规则 此时byte的补码就是1000 0000
加上符号位1 就变为1 1000 0000
所以1 1000 0000就为-128
Int转为byte就变为-128
以上是我对内存溢出的理解 如果有错误的地方 还请各位大佬指点
关于内存溢出理解:
例:
int转为byte
int的内存位数为32位 byte的内存位数为8位
int 128二进制为0000 0000 0000 0000 0000 0000 1000 0000
byte 128二进制为1000 0000
当int转为byte时
Int前面多出的数字会消掉变为1000 0000
此时1000 0000为byte的原码
1是符号位(进制中0为正 1为负)
所以byte的反码就是1111 1111
计算它的补码
除去符号位不算 根据二进制规则 此时byte的补码就是1000 0000
加上符号位1 就变为1 1000 0000
所以1 1000 0000就为-128
Int转为byte就变为-128
以上是我对内存溢出的理解 如果有错误的地方 还请各位大佬指点