Int类型溢出是不会报异常的,
计算机的是以二进制补码的形式存储数据的,举个小例子,129的原码是00000000 00000000 00000000 10000001 ,负数最高位取1,那么-129便是10000000 00000000 00000000 10000001 ,补码计算:减1为10000000 00000000 00000000 10000000 ,再取反为11111111 11111111 11111111 01111111现在把它储存为byte型,因为Byte型只有一个字节即8位,于是只能保留低8位,前面24位丢去,得到01111111,这就对应着十进制的127。
会不会有点复杂?说简单点吧。Int是4个字节32位的数据类型。如果Int型溢出的话,它会自动截取后32位,对应的数是多少就是多少。参照上例。 |