关于内存溢出理解:
例:
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

以上是我对内存溢出的理解 如果有错误的地方 还请各位大佬指点
本文详细解释了内存溢出现象,通过int转byte的实例说明了数值溢出如何导致溢出后的表示,并讲解了原码、反码和补码在byte类型中的应用,重点在于-128的产生过程。
561

被折叠的 条评论
为什么被折叠?



