在强制类型转换时,要注意边界数风险问题,因此存在两种特殊情况(也是考点所在) 。
特殊1:源数据的数据位变为目标数据的符号位
int i = 129;
byte b=(byte)i;
那么此时b=?
特殊2:大数据的数据超过了小数据的位数
int i = 257;
byte b =(byte)i;
那么此时b=?
所以当你的int是 0到256时,转换后的byte 值为当前int值减去256
比如:int num1=129;那么转化后为-127
其他情况也是和256有关系,倍数关系的加减
1、b=-127
2、b=1
边界性问题你得先写出那个数的补码,然后还得考虑有没有溢出的问题